Skip to main content

Full text of "68 Micro Journal Volume 11 Number 04"

See other formats


AtuwaDa A t7.es 

Singapore S *M.9S 
Malaysia M «14.2S 



New Zealand NZ fO-BS 
Hong Kong H (79.00 
Sweden 30:-SEK 



$2.95 



USA 



0S-9 Atari Amiga Mac S-50 

6800 680» 68*08 6U000 68010 68030 68030 

Tlio Magazine for Motorola CPU Devices F *r Over a Decode! 



This Issue 



"C" User Notes pg. 6 
100 lb Software User Notes pg. 1 1 

FORTH p. 16 

Macintosh - Mac Watch pg. 28 

FLEX 6809 Diagnostics p. 36 

Til* Bit Budwl - New* RcImms, Lctttrc, Updates ttc & DO Continued 
aC»D0S Atari Anagi 

And Lots Mare! 



U5*9 FLBX Midnlod) A tlur Comriiutor frumat 





The problem wilh most real-lime operating systems is 
simple, they're not an integrated solution. You end up dealing 
with a multitude of suppliers for languages, compilers, debug- 
gers and other important development tools. And when 
something does go wrong, it can be a frustrating experience 
hying to straighten out the mess. 

Why Not Try the 
Microware One-Stop 
Total Solution? 

Microware's OS-9 Real-Time 
Operating System is a total inte- 
grated software system, not just 
a kernel. VVfe offer an extensive 
set of development tools, lan- 
guages, I/O and Kernel options. 
And this total integrated solution 
is entirely designed, built and 
supported by the same expert 
Microware team. 



MJrroWiV¥$Vtinn\ColHff.HKifi 
C5-9 14 .1 (Mttmutk id MitrtfWjrr 
Ll NIK b j IMduiviik ol At M 
VAX iw l>.xk<mi/i u( IXC 



The OS-9 Success Kit 


A Total Integrated Solution for Your Next Project 


Development Tools: 


Languages: 


C Source level Do bugijer 


c- 


Symbolic Debugger 


Bask 


System Slaw Debugger 


Pascal 


uMACS Ten Editor 


Fortran 


BeclromcMall 


Ada" 


Communications 


Assembler' 


Super Shell 




Kernel Options: 


I/O Options: 

SCSI SASI&SMO Disks 


MMU {Security Protection) SuppOil 


J-.5-. »-inch Diskettes 


Mitfl Coprocessor Support 


Magnetic Tape 


■ RtsdBit or uMX verslent smote 


atiemet-TCP/tP 


••VAXHosW 


Aiaiet- OS-9 Net 



Modularity Lets YOU Choose fust What You Need. 

The modular design of OS-9 allows our Operating System 
to adapt as your requirements change. OS-9 can support a 
complete spectrum of applications — from embedded ROM- 
based code in board-level prtxJucts all the way up to laige- 
scale systems. 

Support is Part 
of the Package. 

Microware is proudly setting 
the indusliy's standard for cus- 
lorrter support. \bu'll find pro- 
fessional and comprehensive 
technical documentation and a 
Customer Hotline staffed by 
courteous and authoritative soft- 
ware engineers. 

So slop messing with sim- 
ple kernels and independent 
suppliers. Call Microware today 
and find out more about the 
"One-Stop Integrated Solution" 
with OS-9! 



-~7nictowMc^' OS-9 



Microware Systems Corporation 
1900 N.W. 114th Street 
Des Moines, Iowa 50322 
Phone: 515/224- 1929 



Western Regional Office 
4401 Great America Parkway 
Santa Clara, California 95054 
Phone: 408/ 980-020 1 



Microware Japan Ltd. 
41-19 1 loncho 4-Chome 
Funabashi City 
Chiba 273, Japan 
Phone: 0474 (22) 1747 



Muataog-020 Miutsuig-Oe Benehmarks 



!BMAT7300X«naSyO 

AT*T 7300 UNIX PC 690)0 

D6C V AX 1 1/780 UNIX tWIuoy 4 1 

□eCVAXU/WO ' 

WrX» OS-» UK s Mhi 

68000 054 WK 10 Mha 

MVSTAHC-M «*0M OJ-»«» f « WAi 

MVST*NG4aaima os-e tst is wu 

UUiTAUGJUOUeV UCiiUl Um&UtX M Mkt 



32 Ml 


Ra (totes 


mleaer 


Lueg 


9.7 




7.2 


4J 


3.6 


3.2 


3.1 


3.7. 


3SjO 


9.0 


6.5 


44 


M 


<J 


Z2 


0J3 


t-t 


122 



Ma*« 



for (i.0: 1 < 999999-. .-.i). 



EMiratcd MIPS - MUffrANC-ttlO _. *i MIPS, 
Dura ul.ll MIPS: Motorola Seats 



OS-9 



OS.9 Probuioul Vo> 


stvuw 


•ti»Jv"fc.CC^n»k. 




BaskO? 


300 SO 


CGsnpUa* 


SOO.OO 


aeOOO OoaasemHm (wAwrm „i± 1100.00) 


loom 


FanrsoT? 


730 00 


MoomfKil 


WD 00 


OrapwA Pwal 


900 A) 


Styio-Orsr* 


495.00 


s<y>e-sa>u 


) 95.00 


SrjtoMe.se 


173.00 


SijIo-Qbob-SP* M°»I» 


695.00 


PAT »/C auv 


229.00 


JUST w/C mm 


79.95 


PAT/JUST Canto 


J49J0 


Jcillf»«» M balm) 


995.00 


COM 


123.00 


UniFLKX 




VtuFlXXIoMlOwj) 


MSO.00 


Sclera Saner 


150.00 


•SUf 'Mni 


200 no 


G A S dOf«CanQ^ 


300.00 


*C CtJSTpkava)* 


3» no 


coaot 


750.00 


CM006M wAuara. 


100.00 


TM006M .Auoftii 


100.00 


X-TALK'e»Ad) 


9955 


C~rra A^esnhfcer 


SOjOO 


Fortran?*) 


450jOO 


Sailpiorr (•» Wow) 


995 jOO 


Strain* MUJTANGflOT* shipped 115 Mhz. 




A<Mtc»16J5Mh«6»a20 


mxt> 


Aodfoj)6J5Hfli.t«BJ] 


375 DO 


ADJf.»S>Mhi<»»T3XAM 


730,00 


16Pon«pR5.732 


i >> in 


CUaumal a 2 A*i<pt<x Canal balm JUU2 AJopKr 


163 00 


usta aud pbhj*" * aratrrkral tee p«*l» 




<ioul of 36 asrtal ports eusyuueel 1 




60lmePsnlialVOcanl 


198.00 


In 3 6*230 Iraoetsce/Ticnr cfcsps, 




6 jroupi of S lp« aacfa. vpvsn H*j*ci 




dnoioa ooneroj for each trown. 





I Tl^LafVwa D04Ju 

«•«* fcr boOj dip «od PGA dwkm A ■ 
pt^wired VBD7 «« ■ Op u> 512K ORAM. 



4?5j00 



SBC- AN 

ftgCyST M_U£hd «*»»»- [nuniiiit I ftN.fiWar*^" ! 11 ^* 1 -call. 
LAK eA«»7B— '(*» 120.00 

Bit^iwbMcfcvi^t/OQHBriMqfkka SI 99,00 

Spot mJ far* i ^irm M\JSTMtG-(W* tj*WB*Wf*vw ■ Scolptor* 
$«SJXLSAVBJmX00 
Softwm rt DCnL« u 



AD MUSTAN&02CP* « 

diKSVra en ill ltftM* «DtWan: 10-70* t 
•mw (or tj-o-ftp- DtfunuD pp»f»)r «Ac*r 0» win * 



The 

P 

R 

O 

f 



Mustang Specifications 

123 Mhz (optima) 16 6 Mhz available) MC68020 full 32-bil wide psdi 

32-bii wide data and eddies* buses, n on- multiplexed 

on chip instruction cache 

object code com pal ibtc with all 68XXX family preevsors 

oxhaiiaed instruction ad- malh so- processor interface 

68881 mathbi-armd (loatmgpoinl o^jjroreaaor (optional) 

direct extension of fill] 68020 uuflsucfion act 

full suppot IEEE P7S4. draft 100 

tranzoBToicrtlal and olher aocmifi c malh fuocumu 

2 Magabytc of SIP RAM (312 i 32 bit caganization) 

up to 256K byte* of EPSOM (64 i. 32 bita) 

4 AjynchjonouJ achal I/O porta flandard 
c^tiana! to 20 aerial ports 
aiandatd RS-232 interface 
optional network interface 
buffered 8 bit parallel pott (1/2 MC68230) 
Ccntrrauca type pinout 
expanaiofi cartnoctor far 1/0 dovricot 
I6bitditi pith 
256 byte addresa tpacs 
2 mtorupi inpiu 
clock and control xigTiiU 
Motcrola t/O Qianncl Modules 
lime of day clock/cal aidar w/baucry backup 
eaiunllcr for 2, 5 1/4* floppy disk diivc* 
single of double aide, tingle or double dentil y 
35 to 80 track •elccuhls (48.96 TF1) 
SAS1 inlcrfaco 

programmable periodic interrupt gcnaaior 
inlcrrupt rata Cram raicrr>iecand» Loaeconos 
Highly accurate time base (5 PPM) 

5 bit acme switch, readable by the CPU 
Hardware autgle-rtep capability 

ItietDhiiraaad 68020 ayalenu an pre* cully working at NASA, Atomic Energy Cacnmuvton. 
Goverron ail Agencies as well as Uruvcmuea. Susinou. Laba. and other Criucal Application! 
Centers, wcntdwide. where speed , mlth cruncliing and cnulu -uicr. mulu. tasking UNI X C level 
V compaubllity and low cost is a minx 




Don't be mislead! 

ONLY Data-Corn p 

delivers the Super 

SfVSTANG-020 



Only the "PRO" Version 
of OS-9 Supported! 




This is HEAVY DUTY 
Country! 



Fori isTtrM ilnwin wii oftw a *400 tiaoa-gi on youTH 
oldooXXXSaC Must b* wnrKa^g propMrr and " 

L-BrTiT(ait» wnh a1 aortwara. ubust and ooainrnmtMm , 
Can for mom information 



Price List: 






Mustang.420 SRC 




J249O.0O 


Cabinet w/swuching PS 




J299.9J 


5* 80 track noppy DS/DD 




J269 95 


Roppy Cable 




$39 95 


OS 9 68K Ptofcsnooil Version 




$850.00 


CCompilcrtJJOO Value) 




N/C 


Winchester Cable 




$39 95 


Wtncheeier Drive 25 Mbyte 




$895.00 


Haul Dui Coo trailer 




$39500 


Shipping USA UPS 




$7J0O 


UniFLEX 


Una 


$100.00 


MC6888! 1/p mslh prorew 


Add 


$27501) 


1667 Mhi MC68020 




$375.00 


16.67 Mhz MC6888] 




$375.00 


20 Mhz MC68020 Sya 




$750.00 


Note all 6888) craps wok with 20 M)iz Sya 






Total: 


$5299 80 



NEW LOWER PRICES 

25 Mbyte HD $3299311 $3749.80 
85 Mbyte HD $524&gH $4548.80 



f 



Note: Only Professional OS-9 Now Available 
(68020 Version) Includes ($500) C Compiler - 
68020 A 68881 Supponcd - For UPGRADES 
Write or Call for Professional OS-9 Upgrade Kit 



Data-Comp Division 




A Decade of Quality Service" 



Tj V^ ~nSBr*' ' Systems World-Wide 
Computer Publishing, Inc. 5900 Cassandra Smith Road 
Teteprtooe 615 842-4601 - Telex 510 600-6630 Hixson, Tn 37343 



68 rvfero Journal 



April '89 



A Member of the CPI Family 



68 Micro 
Journal 



10 Years of Dedication to Motorola CPU Users 



6800 6809 68000 68010 68020 



The Originator of "DeskTop Publishing™" 

Publisher 
Don Williams Sr. 

Executive Editor 
Larry Williams 

Production Manager 
Tom Williams 

Office Manager 
Joyce Williams 

Subscriptions 
Cheryl Hodge 

Contributing & Associate Editors 

Ron Anderson Dr. E.M. "Bud" Pass 

Ron Voigis Art Wellcr 

Doug Lurie Dr. Theo Elbert 

Ed Law & Hundreds More of Us 




Software UscrNolcs 
FORTH 
Logically Speaking 

LMac-Watch 
FLEX Diagnostics - Disk Drive Test, 
ROM Test, RAM Test 36 Korpi 

Hit Bucket 
"" Classifieds 






68M1CROJQ 




(^Contribute Nothing - Expect Nothing' 



DMW 1986 



D 



m^T ^ 




r7 <rz-~. x- 



COMPUTER 
PUBLISHING, INC. 

"Over a Decade of Service" 




I'v-y <ic vifi].Lv^*^m>. 



■World 




Wide" 



68 MICRO JOURNAL 

Computer Publishing Center 

5900 Cassandra Smith Road 

I'O Box 84'i 

Hixson, TN 37343 

Phone (615) 842-4600 Teles 510 600-6630 

Copyrighted © 1987 by Computer Publishing. Inc. 

68 M icro Journal is the original" DeskTop Publishing" product and lias 
conlinously published since 1978 using only micro-computers and 
special "DeskTop" software. Using first a kit built 6800 micro-corn 
puicr, a modified "ball" typewriter, and "home grown" DeskTop Pub 
lulling software. None was commercially available at that lime. For 
over 10 years we have been doing "DeskTop Publishing"! We angi 
noted what has become traditional "DeskTop Publishing " f Today 68 
Micro Journal is acknowledged as the "Grandfather" of "DeskTop Pub- 
lishing" technology. 



68 Micro Journal (ISSN 0194-5025) is published 12 times a year by 
Computer Publishing Inc. Second Class Postage paid at Hixson. TN. 
and additional entries. POSTMASTER: send address changes to 68 
Micro Journal. POB 849. Hixson. TN 37343. 

Subscription Rates 

1 Year $24.50 USA, Canada & Mexico $34.00 a year. 

Oihers add $12.00 a year surface, $48.00 a year Airmail, USA 

funds. 2 years $42.50, 3 years $64.50 plus additional postage 

for each additional year. 

Items or Articles for Publication 



Anicics submitted for publication must include authors name, ad 
dress, telephone number, dale and a statement that the material is 
original and the property of the author. Articles submitted should be 
on diskette. OS-9, SK»DOS, FLEX. Macintosh or MS-DOS. All 
printed items should be dark type and satisfactory for pholo-rcproduc 
tion. No blue ink! No hand written articles - please! Diagrams o.k. 

Please -do not fo mat withspacesany text indents, ch rts. etc. (source 
listing o.k.).Wewi edit in all for matting Text should fa I flush left and 
use a carriage return only to indicate a paragraph end. Please write 
for free authors guide. 

Letters & Advertising Copy 

Letters to the Editor should be theoriginal copy, signed! lyeuers of grip 
as well as praise are acceptable. We reserve the ighl to reject any letter 
or advertising material, for any reason we deem advisable. Advert is 
ing Rales: Commercial please contact 68 Micro Journal Advertising 
Department. Classified advertising must be non-commercial. Mini- 
mum of $15.50 for first IS words. Add $.60 per word thereafter. No 
classifieds accepted by telephone. 



April '69 



66 Mcro Journal 



r 




JUST 



*\ 



PAT t 

With 'C Source 
$229.00 



stemni! 



FiSaiDnM 



A Division of 



I 



y^ 



Media 

5900 Cu usiki Smith Rd 

Hiuoa. Tn 37343 

TckrttoM 613 842-4809 

Tck>310 6OO-6<3Q 



I14M2I 



^ 



PAT FROM S. E. MEDIA » A FULL FEATURED SCREEN ORIENTED TEXT EDITOR 

with all the best of PIE. For those who swore by and loved PIE, this is for YOU! All PIE 
features & much more! Too many features to list. And if you don't like ours, change or add 
your own. C source included. Easily configured to your CRT terminal, with special configuration 
section. No sweat! 

68008 - 68000 - 68010 - 68020 OS-9 68K $229.00 



COMBO 




Special $249.00 

JUST 

JUST from S. E. MEDIA - - Text formatter written by Ron Anderson; for dot matrix 
printers, provides many unique features. Output formatted to the display. User con- 
figurable for adapting to other printers. Comes set-up for Epson MX80 with Graflex. Up 
to 10 imbedded printer control commands. Compensates for double width printing. 
Includes normal line width, page numbering, margin, indent, paragraph, space, vertical 
skip lines, page length, centering, fill, justification, etc. Use with PAT or any other text 
editor. The ONLY stand alone text processor for the 68XXX OS-9 68K. that we have 
seen. And at a very LOW PRICE! Order from: S.E. MEDIA - see catalog this issue. 

68008 - 68000 - 68010 - 68020 OS-9 68K 
^ With 'C source $79.95 



J 



68 Mcro Journal 



April 69 



©IL@ 





@ot ©iPi^^niiiL 




SCULPTOR 



From Hie world's oldest 
& largest OS- 9 software house! 

cits ric4K.ic\>nii\c- time up to 80% 

6809/68000-68030 Save 90% 

SCULPTOR-a 4GL ■ Only from S.E. Media at these prices. OS 9 levels one and two (three GIMIX) 6809, 
all 68XXX OS-9 standard systems. Regular SCULPTOR versions 1.4:6. One of if not the most efficient 
and easy to develope DBMS type systems running under OS-9. A system of llexible keyed lile access that 
allows extremely fast record and data retrieval, insertion and deletion or other programmed modifica- 
tions. Access by key or in ascending order, very fast. The system provides automatic menu generation, 
compilation and report generation. Practically unlimited custom input format and report formatting. A 
rich set of maintenance and repair utilities. An extremely efficient development environment that cuts 
most programming approximately 80% in development and debugging! Portable, at source level, to MS- 
DOS, UNIX and many other languages and systems. 

Standard Version: 1.14:6 6809 - $1295.00 

68000 $1295.00 

68020 $1990.00 



r 



Due to a "Special One Time" Purchase, We Are 
Making This Savings Offer. Quantities Limited! 
Once this supply is gone the price goes back up! 
System OS-9: 6809/68000-68030 
• Regular s 12 9 5.00 

ONLY 



^ 



$ 99.95 




S.E. MEDIA 

POB 849 5900 Cassandra Smith Road 

HIXSON, TN 37343 61 5 842-4601 
Telex 510 600-6630 FAX (615)842-7990 




AVE - WHILE SUPPLIES LAST! 



April '69 



68 Micro Journal 



%i$) 842-4600 Sou tfi "Las t Media 



Tefex; 510b00hbA0 



OS-9, 'Um'JCEX, 'JCLX, S%*DQS 



'/a*: ($15)842-7990 



Sculptor 



Full OEM & Dealer Discounts Available! 



n^ soi; n i. ik v.k mm 



a ■**** tjn ht to tiara*) null In* horn 



rut package 



AN ESTABLISHED LEADEfl 
afta 

pMooli 



rappr*! prwralo' 

dtHfyMHuv 



J evp* mitv h* chfwm 



■ni chm, math laadbarh (rcmr* an nr wcti— nj tuitoflw 

baa*. Sculptor Kim bam rrtnad and mhwcWl no bacorTW 
<**<Atw itMBU riwawhif int. f^afauwafl rabbi* -vilrrttt 
M ih* Najajl anJ*v 

SYSTEM EMJEPENDCNCE 

Scutpani ■ ruaahl run many dtfhftfw rrm-hirwi arid a* 
mtfaOltlft^PfftoM, ingtrirM WS IX rv Unii.lUnujimli 
VMS th mfti rt w b* ■.* wmwaanJ hmhuwtinafi hm 
*nwlp«rHfliJC4'npvWft, * ,h3 »"J h rtluta - ™« wan™ 141*1 
larga flwand maaniranMii Snip** an tta 



Far nt 

Facts 



DATA DICTIONARY 

Ejk h Ur may hiw on* at iwh m (*J 
Ivpr* ijWk rrbrd I '*fkk may haw» • 
hwtx- -rwaclvu fvp< 

vaJh UtW<n fcu F uLd | 
bom 

HIMI 
fltMtr-ny [mMitl 



_, DATA RLE STRUCTURE 

■ ■■■■■■■ : ! Mrrfi^th¥tfdmkniv*4('iji9vnfvi* l « 

■■■■■■■■■■■■■■■■ ! ! Dam****!** inl*g« nl*» »Mir**n 



INE»E XING TECHNIQUE 

Sc utpscir trauma*** B Br* ndn *►* 
**f H tlttl Nr ftt^Mfi V4C 4* ■**> *flry 
rHJmb*TI 1 J nJltfTEuiBuc lr*W *<^ Irn ru- 

coded tn*o ow ctftw At 

INPUT DATA VALIDATION 

input rial* m#y hi v**ii*hr>f n *»** 



RELATIONAL OPERATORS 
fatal lo 
UwituJi 



L«h than 01 equal u 
Gaataaf than en *nuaJ * 1 
Nunmiwlm 



I (JflUKl* 



nraalasa* 

ARITHMETIC OPERATORS 
Untiui 



SPECIAL FEATURI* 

l: 1 .iii. 1 



APPLICATION PORTAB1I ITY 



PRVHM 



Sculptor for 68020 
OS-9 & UniFLEX 

$995 



nwn Scjpd.t w 



Vatican' 

-njPlhfiiionilar^myftvtfcri-fi^ifHi F™ 

fun a%#r baler* ■ ■ ** tyarm 
MMhrnoh *pp»ddrv*iwi 



pyp Aral ■ 



SPEED AND EFFICIENCY 

Sculptor una* a lariand prwoi md*ung MhrKM wrfMrb 

SoA** * him* frrmtfr* ■ <w»v9> 1* ««pM *>* 
compact iimiiiwirnn fed* *ha-h **#nja« »** bnnHR 



ISTERNATTONALLY ACCEPTED 
By <W*Q * Mmpk HTt*if^m*fli wi 1. aim.'. V u^* » <«n iwvwdl 
V*<nlrwla#>OMa||f»rKltipmi*MK«y»Mjr» V wF Th*n 

■bnU thaAnwvdAM^'ll utt^jw 



nxwttPT *Kh* i»*iiW Amn. 
- SnJpfcn * ahvadv at «™* 



ftrniaar*arf 

Addnon 











r \ 










cS 


L^ 










\ jrf JSjjii*- 










I f rsi 


^^ 










tii 


1 ^^^ 

























MAXIMA AND MINIMA 

Mirtimum Wv t™jfrh 1 1 

Miumum k#v bri-Hjcfi :. '* 1 b 

Marumum wt nfd L*yth 3 b 

Haurmim fpcok! t#n^h Ji?767 b 
HfltlrTMiiim rwlihfMTfri.mJ JT7fc7 
MulrtHfm rn™h prr Mt lb mi 

Munurn Urt p#r ptripam I f > 



Uuffvtaia^- 

. Krt if^Uri Ut 

! RvtiuJd ht*J*» 
AJwr l*i»qi>agr *rn ! ii»w ii kumI 



PROGRAMS 

. CrrjBhrtwtii mdnHfraV 

■ tnWrff*tr lUnMKiwn fcwm 

rm-^am 
' {WiwraM tunlard wpon rtiafarn 
' CnjAa^aV *mwi lo*m pfi*a"ans 

Ci ifnpaV tvpLai (mj^rwn 



: Kapnrt-pm^wnKnhrTWrlrr 



SCREEN FORM LANGUAGE 

: [VmJunrnnwT , |rtr*[ il*»n an. 5 

H*jhlj4r ranijfirtt atii 

[W4autl *.rt {*i4att*rwi 

c« rpoofi eondHLim 
: Primrttul «rrti* -a* ifinji ,V(^nl 

PalAKMH 
: imubafi*xT» Jnf^ts 11* munjib 

Fadfefy lo«l a^9 f*»^»m*4ntl 
(wraAng Maawi rnfnmflBidk 

: r t «iJffliwwJi*a*rTTwr«h 

• Irwfa ptfraVi j <J awnwnal Mpr 



r" 



MUSTANG-020 U»rs - Ask For Your Special DLscount! 



n 



MUSTANG-020 



*$1.990 $398 $795 
*$1,295 $259 $495 



PC/XT/ AT/MSDOS $695 $139 $299 



L 



MUSTANG-08 "$ 1.295 $259 $495 Call or write for prices on the following systems. 

XENIX SYS III ft V. MS-NET. UNIX SYS III & V. ATARI OS 9. 68K. UNOS. ULTKIX/VMS (VAX. REGAL). STKIOE. ALTOS, AI'KICORT, AKETE. AilM 
STRONG. BLEASDALE. CIIA«1>;S I0VEKS. GMX. CONVERGTECH. DEC. CIKER. EQUINOX. GOULD. III'. HONEYWELL. IliM. INTEL. MEGADATA. 
MOTOROLA. NCR. NIXDOKJ''. N.STAR. OUVETH/AT&T, ICL. I»ERKINS EIJUEK. i'HILLll'S. HXEL. I'LESSEY. MJCXUS. ItJSlniON. PRIME. SEOUEYI 
SIEMENS. SWTPC. SYSTIME. TANDY. lORCli. UNISYS. ZYLOG. E1C. 

* For SFKCIAI. M1W SCLIJTWH prlcivs csocvially for BSOB^riKXXX <IS-» Syswms • St-c Spe- 
cial \d thiw Iwuc. Itt'm«*mb«*r, M When they art* ifont* lht> prltn* ^m". bat*k up a** :ilio% <■:" 

... Sculptor Will Run On Over 100 Other Types of Machines ... 
... Call for Pricing ... 

!!! Please Specify Your Make of Computer and Operating System !!! 



J 



* Full Devdopement Package 

•• Run Time Only 

*** C Key CTIc library 



AOlltWIK} Ltfiolb 
O • OS-*, S ■ SK-DOS 
r . FLO, . UOIED 
CO . Ctfor Ca^Hiw OS-* 
CO> . Oaior O m fut tr KLtl 



South Tost 'Media 

$900 Cnssambu Smith 3fo£ - Jftat on, Tn. 3 7343 
Ttltpfvmt: (61$) 842-4&0 TtlvQ 5106WC&0 



•• Shipping ** .. 

KU J» MSA. (ml» X1J0 
Rnlp Serfca Add 5* 
For«ltli Alraull Add !«• 
Or CAA SKlppinj On*/ 



*Q5.* Ii ■ Tr»dwwt rf Mkrowri Hid Motenib-'KLIX .Bd UoH.m f « I r»«ttrmkJ J lichnkJl Sy*» CormdMB-'ilCDOS \s % 1>«dMimt «f »ir.K Saltwm S^^n. I jiry. 



68 Micro Journal 



April '89 




The C Programmers 

Reference Source. 

Always Right On Target! 

C User Notes 



A Tutorial Series 



By: Dr. E. M. Bud" Pass 
1454 Laua lane N.W. 
Conyers,GA30207 
404 483-1717/4570 

Computer Systems Consultants 



INTRODUCTION 

This chaplcr begins with a siatcmcnt by Dennis Ritchie concern- 
ing the ANSI C standards committee. He placed il on USENET, 
with the usual disclaimer that the opinions expressed arc his, and 
not those or his employer. Il is reprinted here verbatim, without 
editing. For those who do not recognize the name, he is the "R" 
of"K"and"R". 

For the tenth anniversary of the original publication of the K & 
R book on the C language, there is a new edition, encompassing 
the new fcalurcswhich have been added to the language in the last 
ten years. Although i tat tempts tocovcr the new ANSI C standard, 
be aware that the standard is still changing and some features 
noted in the book have been deleted from the standard. This 
includes the "noalias" keyword. The "volatile" keyword may 
also be modified in meaning before the standard is finalized. 

Following the siatcmcnt by Ritchie arc commentaries (also from 
USENET) by others concerning various aspects of the C lan- 
guage. Their arguments show that the C language definition 
needs additional specification in several areas. 

The example program produces text suitable for input to a text 
processor, such as nro, from plain text not containing the neces- 
sary commands. 

EVALUATING ANSI C . Dennis Ritchie 

Since the subject has come up, this is a good time to record 
my thoughts on ANSI C and the work that X3J 1 1 has done. In 
brief, 1 think the result is commendable. I concur in the belief 

of those who watch such things that X3J1 1 managed to 
improve on what they started with, and that this is an unusual 
accomplishment for a large committee that lasts for 5 years or 
so. In particular, they successfully resisted the usually inexo- 
rable pressure to add features and options. 

The committee had ccitain explicit goals, among them to bring 
tlic language specification up to date with reality, since much had 
changed in the 10 years since thcoriginaldclimtion; to add a very 
few things deemed necessary (function prototypes); and to spec- 
ify things more completely than K&R did. They also wanted to 
standardize the library, something that has become important not 



only because the drift in the System V vs. BSD worlds, but even 
more because of the vastly increased use of C on non-Unix 
systems. 

Perhaps as importantas all the rest was a goal that was not stated 
explicitly, namely to supply the stability, legitimacy and gcncial 
cachet that is possible only with all the legalities required to gel 
the result accepted as an Official Standard by the appropriate 
Official Bodies. The need for this can be questioned, but the fact 
that many people want il to happen, and that it lends to occur 
regardless of desires, can't be denied. 

I have only a few worries about the specification of ihc language. 

First, the introduction of the new function declaration mecha- 
nism. The new scheme is belter than the old, bul the change is 
going to cause trouble, and the need lo accommodate both ways 
confuses Ihc language specification and will confuse users. 1 
made my peace with the change some years ago; il is better to do 
il than not. 

Second, 1 don't think type qualifiers have been fully digested. 1 
never did object very strongly to volatile, even though I maintain 
that il is not onerous to live without it. The remaining qualifier, 
const, suffers from tension between conflicting views of what il 
is supposed to mean. One possible view is ihat const things arc 
real constants. If il prevailed, then one would expect that things 
of type const could appear where constants arc expected (case 
labels and so forth). Perhaps even the notion of pointer inconstant 
would become suspect. This was not the view thai ihc committee 
eventually adopted, although (perhaps unconscious) sentiment 
for it remains; instead, a more implementation-minded approach 
was taken, namely lhal const means something that can be put in 
ROM (hardware or writc-protcctcd memory). Nevertheless, the 
tension remains, and figured heavily in the committee's argu- 
ments over seemingly unrelated things (including noalias). Even 
now, questions of whether a pointer lo const can be assigned to 
an ordinary pointer, or whether these two types arc compatible 
(and when compatibility mailers) arc lively issues. Il is clear lhat 
the rulcson qualifiers arc to some extent artificial — they could be 
decided in several ways. Good rules arc not arbitrary, they arc 
forced by the logic of Ihc design. 



April 89 



68 Micro Journal 



Some of the things Utat people arc complaining about were 
completely necessary, in particular ihc insistence that only a 
fixed set of library routines is defined, that initial _ is reserved for 
the implementation, and Utat all other names arc reserved for the 
user. It is just not possible to write a standaid that perm its the im- 
plementation to intrude into Ihc user's name space (by letting it 
define names internal to its library that the user might use by 
accident), or to give a defined, standard way for the user to 
replace system routines. Ihc latter would constrain implementa- 
tions loo much. At the same lime, the consequences of such rules 
ate misunderstood. A program that calls "read" is not defined by 
the standard, but I assure you that the supplier of your Unix 
system will arrange that it works. 

X3JI I did miss some opportunities. Perhaps the most obvious 
lack in the language isa scheme for variadic arrays. However, ihc 
proposals 1 have seen arc awkward and don't fit smoothly, so it 
is not sui prising that nothing was done. 

Another thing that must await the future is a genuine rethinking 
of integer arithmetic, not just the fiddles thai they uid. 

All in all, I think X3J11 did an excellent Job. When they began, 
several years ago, I was somewhat apprehensive about what 
would result, but also decided ihat I did not have the stamina to 
become involved in their activities; 1 would have to irust their 
good sense. I have never regretted the decision, and I'm pleased 
with the outcome. 



Whether this value implies wriiability is a random parameter, 
hence the variable nature of the bug. The comma is now a com ma 
operator, since it is outside the function brackets. Assignment 
takes precedence over the comma operator, so Ipfd is indeed 
assigned the return value from openO. but this entire assignment 
now constitutes the left side of a comma expression, so it is the 
valucofO_WRONLY that is compared against 0!O_WRONLY 
is 6efined as a positive constant, so the test always fails and 
attempted execution of the wriicO becomes inevitable. 

The lint program did not report an argument count cnor for 
opcnO It so happens that openO is one of the few system calls thai 
can take a variable number of arguments (depending in Ihis case 
on whether the 0_CREAT flag is included in the second argu- 
ment). Hence lint's argument count check is suppressed by the / 
"VARARGS2*/ modifier in llib-lc. 

It look them a very long time to find the problem, as could be 
imagined. 

He noted that C's overloading of certain operators (in this case, 
the lowly comma) increases the probability that an erroneous 
code fragment will be legally inter prciablc, a situation somewhat 
analogous to having too many words in a spellchccking diction- 
ary. This lead directly to the compiler not locating the logic error, 
since ii was not considered a syntax error 

GOTOS FURTHER DEBATED 



OVERLOADING C OPERATORS 

Ihc following commentary is due to Frank Byrum of 
BROOKS Financial Systems, Inc. 

They recently experienced an exceptionally insidious error in 
their production code, which was causing sporadic write failures 
oncxecution. This error successfully eluded detection by a DOS 
compiler as well as by a full liming under Unix System V Release 
3. 

The intent was to have the following C code: 

if ((Ipfd* op«n(print«r_»t ring (PORT) , 0_WROKLY) » < 0) 
(fatal trior Mingi) ... 
writ* (lpfd ) ; 

In English, if the return value from opcn()ing ihc primer as 
assigned to Ipfd is not a valid file descriptor, quit; else use it 

Unfortunately, what was actually coded was the following: 

if ((Ipfd - op«n(pi:int«r_»tring(POB»)), 0_«ROMLY) < 0) 
(fatal «croc maaaaga) ... 
writ* (Ipfd ) ; 

Take careful notice of the change in parenthesizing. These 
statements constitute perfecily legal C. Notice first that openO is 
called wiih an insufficient number of arguments. The stream's 
status will be based on a random value taken from the stack! 



The following section was written by William Wells of Proxim- 
ity Technology of Fort Lauderdale. Florida. As usual, his opin- 
ions arc his own, not his employer's. 

Under ordinary circumstances, there is exactly one place where 
a human C coder might use a goto. Ihis is to implement multi- 
level breaks and continues. 

I say this, having managed (and wi iticn huge chunks of) a 1 7,000 
line software system (and that is only the part we sell, and docs 
not include development tools). 1 have programmed inC for six 
years now and have NEVER used a goto. We have uncounted 
megabytes of C code written in-house. None of it (to my knowl- 
edge) contains a goto. Ihc closest thing we have to a goto is 
setjmp/longjmp, used to implement a multi-level return (and that 
is a recent change, one whose contemplation caused much 
debate). 

With that aside, let mc explain why the goto discussion is really 
fruitless. People have observed that gotos arc used in a lot of bad 
code. From this it is concluded ihat gotos are bad. This is really 
bad logic. Try this: programmers have baenobscrved to write bad 
code: therefore, programmers arc bad! 

There is nothing wrong with goto. How do I reconcile wilh my 
stale menis above? Wait and see... The thing Utat is wrong is the 
control structures being implemented with the gotos. 



68 Micro Journal 



April -69 



The whole point of the structured programming debate is this: 
every program has a control structure; some of these control 
structures arc better than others. Whether you use golos or some 
other language feature to implement the control structure docs 
not change what the control structure is nor does it affect the 
goodness of the control structure. 

Thcqualilyofyour program is strongly influenced by the quality 
of its control structures. Furthcimorc, you want that control 
structure to be obvious and understandable to the reader of the 
program. This implies that you use language features that make 
your use of a control structure obvious. 

So, the first question should be: what arc the good control 
structures? 

The second question should be: given a particular language, how 
should the control structures be implemented? 

Ok, so what makes a control structure good? Well, the basic 
answers are: a control structure is good if it is 

1 ) appropriate to solving problems. 

2) easy to write. 

3) easy to understand. 

4) easy w maintain. 

5) ... add your own as long as they 
do not contradict the above. 

There arc obviously lots of control structures that meet these 
requirements and you do not have to use all of them. In fact, you 
should pick a set of those which are most appropriate for your 
programming environment and use them. This set should be, in 
somesense, a minimum one; for example, if you ha vetwoconirol 
struc lures wh ich can accomplish the same thing, bulonc is easier 
to use than the other (for you), pick the easier one and forget the 
other. All other things being equal, a smaller number of control 
structures helps make your program easier to understand. 

Now, I hope my claim about our C programs is understandable. 
But if not, here is what it amounts to: I have chosen a set of control 
structures which isappropriatc to programming in C, for the kind 
of programming tasks that I do. It happens that, while my set of 
control structures includes multi-level breaks and continues 
(which would be implemented w itha goto), I have never had need 
of one. Given the amount of code I write, it seems to me that one 
might never need to use an explicit goto in C code. 

Now that I think of it, here is a reason to avoid naked gotos in C 
code: for all other constructs, the control structure being imple- 
mented is obvious from the keywords employed. This is not true 
for goto. Therefore, supposing that you have found a control 
structure that you have to implement using golos in C, you should 
dress the goto up. As an example, suppose that you arc using the 
state machine control structure. 



I normally code it as the following: 

state = STATB_INIT; 

while (atate >- STATE_DONE) 
( 

switch (atata) 

( 



cut STATE INIT: 



1 



However, this is not the most efficient way to do it. You could 
also implement it as the following: 

I* Wherever you see the macros stale and ncxlsialc being used, 
you will be seeing a stale machine. The stale macro defines the 
start of a state. The ncxlsiate macio causes a transfer of control 
to another stale of the same machine. A slate machine statts at a 
6cfinc of slatcpref and ends with slatc(DONE). */ 



6e£ina dummy <x) x 
6efine atata (x) 
£efine nextst&te. (x) 

4fdef statapraf 

Ondef atatapraf 

lndif 

6efina atatapraf 



dummy (atatapraf) x 
goto dummy ( atatapraf )x 



STATE 



state (INIT) : 

(coda for thia atata) 
naxtatata (DONE) ; 
(mora atataa with appropriate code) 
atata (DONE) : 
(coda after atate machine) 

I am aware that not all preprocessors will do what I want here; for 
real portability, you would explicitly write the prefixes. Also, this 
method fails for nested slate machines, something I have occa- 
sionally had need of. 

Somcof you will no doubt be thinking: but why should I go to all 
this effort when I could just use the goto directly? Well, if this was 
all you did with goto, I don't really see any reason why not (but 
I do think your program should include a comment saying that 
you use goto for state machines and describes how you structure 
it). If, however, you have more than one way of using goto, you 
should clothe the golos somehow so that the reader of the 
program knows what control structure your goto belongs to. 
After all, a while is just a disguised goto. 



WHITE-SPACE IN C SYNTAX 

Almost without exception, white-space may be included or 
excluded from C programs without affecting the logic of the 
program. The obvious exceptions arc within quoted strings, 
identifiers, keywords, numbers, and multi-character symbols, 
where while-space may not be included without splittingonc unit 
into two. 



April 89 



68 Micro Journal 



A problem in some of ihc earliest C compilers, which is described 
in the original K A R book as bcingan anachronism, was ihe older 
form of Ihc binary-opcrator/assignment statement. Rather than 
being coded as i -= 1, it was coded as i =- 1. leading to the 
possibility of an ambiguity if the spaces were removed, since i=- 
1 could represent a binary-opcrator/assignment statement or an 
assignment siatcmcnt. U nfortunatcly . some of the curren tC com- 
pilers accept ihis syntax, cither silently or with warnings. 

Certain implementations of the C language, especially older 
ones, had dependencies and peculiarities which made white- 
space significant in unexpected contexts. 

Forexamplc, one C compiler required no white-space between an 
array name and ihc open bracket introducing the first airay 
dimension. This situation generated only syntax errors and some 
grumbling on the pait of the programmers attempting to use the 
compiler. 

AnothcrC compiler required no white-space between a function 
name and the open parenthesis introducing the function argu- 
ments. Again, this was primarily a nuisance. 

The same C compiler required no white-space between a par- 
ametric define name and the open paicnthcsis introducing its 
arguments. Unfortunately, if it found no adjacent open parenthe- 
sis, it assumed that the arguments were all null and expanded the 
define. Then, it encountered the open parenthesis and evaluated 
the arguments of the define as expressions separated by comma 
operators. If the programmer were lucky, the compiler generated 
a syntax error. However, in many cases, ihc compiler silently 
generated incorrect code because it mis-inicrprcicd Ihc state- 
ment. 

C compilers confoiming to the ANSI C standard must ireat 
comments syntactically as white-space. Many older compilers, 
and several current ones, treat comments as if they were not 
present. The difference is probably academic, but may cause 
minor portability difficulties. 

There is one ambiguity in the C language definition which has 
been present since essentially the beginning and continues into 
the ANSI C standard. If a divide operator is immediately fol- 
lowed by the asterisk of a dereferencing pointer operation, the 
result will be indistinguishable from the "/*" multi-character 
symbol introducing a comment. This will cause a problem in any 
C program containing this sequence, but it will be exceptionally 
severe with current C compilers which do not support nested 
comments, as Ihc resulting comment will encompass all code up 
to and including the next comment. 

Ine easiest manner in which to avoid most ambiguity is to use 
white-space liberally. This assists both the human and the com- 
puicr in interpreting the program correctly. 



C PROBLEM 

Following is a puzzle on unsigned promotions, posed by Sieve 
Friedl of V-Systcms, Inc. It illustrates a portability issue with sign 
extension. 

Can any of you help with a puzzle? I've been trying to understand 
the unsigned vs value pcrscrving rules of various C compilers. 
and I 'm afraid I ' ve run into acasc 1 don't understand. I have pored 
over the dpANS on this but am still confused. 

Note that this question applies to all compilers, not just dsANSI 
ones. 



Oxffff 



/* what la printed? V 

6a fin* HXNDS_ONE 

main () 

( 

unaignad ahort aval; 
long lvall, lval2; 

aval - HINOS_OHE; 

lvall - - aval; 

lval2 - - (unalgnad abort) HINDSONE; 

prlntf <"lval 1 - 71d 2 - Tldn", lvall, lval2> ; 
I 

Tba normal anawar I gat la: 

lval 1 - -65535 2 - -65535 

but on the HP9000 I *•• : 

lval 1-1 2 - .65535 

For what it's worih. the HFXXX) has sizcof(short) = 2 and 
sizeof(int) ■ 4, and 1 get Ihc same results when I 6efinc 
MINUS.ONE to be (-1) or Oxffff. 



My specific questions: 

(1) is this a case of questionable 
unsigned-ness? 

(2) if 1 have a vendor who asserts "this is 

a valuc-picscrving compiler", what is the necessary value of 
"lval"? 

(3) if 1 have a vendor who assens "ihis is 
a unsigned-preserving compiler", 
what is the necessary value of "lval"? 

(4) if 1 have a vendor who asserts "this is 
a dpANS-conformani" compiler", 

what is the necessary value of "lval"? 



68 Mtoo Journal 



April 89 



EXAMPLE C PROGRAM 



Following is this monih's example C program; it converts text files toa simple nro format It assumes that text begins in the fii« column 
and lhai nontext (tables, etc.) begins in other than ihc first column. By changing the commands somewhat, the program could be modi- 
fied to output commands for another text processor. 



4ncluda <»tdlo.h> 
4ncluda <ctyp«.h> 



char *p; 

char string [2S6] ; 

lnt 1; 

lnt n 

lnt a 

lnt t 



main (argc, argv) 
lnt argc; 
char *argv[ ] ; 
( 

whlla (fgata(atrlng, 256, atdln) ) 

( 

If <*«trlng > ' ') 



< 



If (1) 

1 - 0, fputa (".fin", atdout) ; 
If (t) 

t • 0. f put a (". In On*, atdout) 
If (a) 

prlntfC.ap Sdn", a), a - 0; 
fputa (string, atdout) ; 



• !■• 



for <p » atrlng, n - 0; 

laspaca(*p); ++p, ++n) ; 
If t*p) 
< 

if on 

1-1, fputa (~ .nfn", atdout) 
If (t !- n) 

printf (".in 8dn". t * n) ; 
If (a) 

prlntfC.ap Sdn", •).»■= 0; 
fputa (p, atdout); 
» 



FOR THOSE WJ 



HMHhl I) TO KNOW 



68 MICRO 
JOURNAL 



TM 



10 



April 89 



68 Micro Journal 



SOFTWARE 



A Tutorial Series 

By : Ronald W Anderson 
3540 S turbridge Court 
Ann Arbor, MI 48105 



USER 



From Basic Assembler to HLL's 



NOTES 



Centcolmnal 



This is my lOOlh column, 
though not all 100 have appeared 
In 68 Micro Journal. Way back 
when. 1 started out to publish a 
newsletter, advertised in "Kilo- 
baud Microcomputing" via letter. I 
had printed, duplicated and dis- 
tributed 8 newsletters when Don 
Williams phoned one evening to 
ask if I would like to switch to 
writing a column for '68' Micro. I 
said that would be fine, but I had 
committed myself to ^newslet- 
ters, and had collected a small fee 
that would Just about cover cost 
of duplication and mailing. Don 
said that he would send four 
Issues of '68' to my list of about 
25 Initial subscribers to fulfill my 
obligation. Of course, my "col- 
umn" was then read by a few 
thousand hobbyists rather than 
just 25 of them. That means that 
I have written some 92 columns 
for 68 Micro Journal, and I've 
missed more or less 4 limes 
(Including two recently). That 
means that It has been just about 
8 years that I've been here In this 
spot. 

My early columns included a 
lot of software listings, mostly 
utilities for the 6800 FLEX09 
operating system. When the 6809 
came along. I did the same for 
that. 1 had little choice, since 



there really wasn't much to talk 
about In software available for 
those early microcomputers. 
Technical Systems Consultants 
had an ad very early in Kilobaud, 
selling some little games that 
would run on a KIM-1 board with 
terminal attached. The games 
were fun but truly primitive by 
today's standards. There was 
HANGMAN, of course, and RE- 
VERSE in which you tried to 
order ten digits that had been 
randomized by reversing some 
fraction of them from a given 
position on to the end. The KIM-1 
was a 6502 based single board 
computer with 256 BYIES of 
RAM. Before the addition of extra 
memory and a terminal it ran 
little games on its 6 seven seg- 
ment LED displays. It had a 
keypad with which you could 
explore memory or enter pro- 
grams a byte at a time. Programs 
could be saved to audio tape and 
loaded from it as well. There was 
a KIM-1 newsletter in which were 
published little games, such as a 
horse race in which the three 
horizontal bars of the seven 
segment displays were illumi- 
nated In turn advancing from left 
to right based on a random 
number generator. The ilrst one 
to make it across the 6 digits was. 
of course, the winning horse. 



Eventually 1 found a Tiny Basic 
for it. and attached a 4K memoiy 
board, adapting its S-100 bus to 
the KIM bus. 

About January 1977 I or- 
dered my Southwest Technical 
Products 6800 box and a terminal 
that consisted of a keyboard and 
a logic circuit board that included 
a character generator etc. I 
attached an old television set and 
the combination could be used as 
a 40 column terminal! SWIPC 
used a cassette as the software 
medium at a whopping 300 baud 
transfer rate. I remember starting 
"16K BASIC" loading to the 
computer and breaking for sup- 
per. When I came back either 
BASIC was running or I had an 
error message and had to start 
over again. TSC offered their 
games In 6800 version and 1 
bought those again. Then they 
offered an assembler and a line 
editor. I bought both (to save 
money) in source code form and 
typed in the HEX DUMP to get 
them running. That was an 
exercise in frustration, searching 
for a wrong byte here and there in 
the code until it all worked cor- 
rectly. Later I typed in the source 
code and got it assembled. 
SWTPC had a printer to go with 
the computer. You guessed it. it 



68 Mkro Journal 



April '89 



11 



printed 40 column on roughly 4 
Inch wide "adding machine" tape 
to match the 40 column display. 

A year or so later. I bought a 
genuine ADM-3A terminal (with 
the option to allow both upper 
and lower case), and then a pair 
of 5 1/4 Inch disk drives which 
came with a primitive disk operat- 
ing system (that worked line. I 
might add). Six months down the 
road from then. SWTPC sent all 
the customers who had bought 
floppy disk systems a copy of 
Mlnlllex. the first REAL operating 
system for the 68XX processors. I 
remember that they had stuck the 
disk in the middle of their printed 
manual and sent It In a 9 by 1 2 
envelope which the mall man 
nicely folded In half the long way. 
to fit the mailbox. I improvised 
and found that I could remove the 
magnetic medium from the disk 
Jacket by cutting one edge of the 
jacket open. Then I did the same 
with a good Jacket and moved the 
lnsldes to that. I could then read 
the disk and copy it to a good 
disk and 1 was running Mlnifiex. 
TSC offered their line editor EDIT 
and their assembler ASMB again, 
and this time I bought them on 
disk. TSC supplied printed source 
code. They did the same for their 
text processor called simply PR. I 
bought that as well. There was a 
veiy early compiler by Jack 
Hemmenway called Strubal 
(STRUctured BAslc Language). I 
can't say much more for It than to 
say lhat It worked. I typed in a 6 
or 7 page program and the com- 
piler output overflowed memoiy! 
(I had 32K at the time). Lucldata 
itleased their 6800 Pascal Pcode 
compiler that was many times 
more efficient at code genera- 
tion... (Not a knock for Hemmen- 
way. Just progress happening). 



Shortly. TSC came along with 
their DEBUG program that let the 
user single step through a pro- 
gram, set break points, etc. I 
wondered at the time how I had 
ever debugged an assembler 
program without It. 

A year or two alter that I 
upgraded by buying a 6809 
processor board and a lot more 
memory for the system. It origi- 
nally had 16K but I had previ- 
ously upgraded to 32K and now I 
went to 48K and then 56K (the 
maximum possible in that com- 
puter system). FLEX09 came 
along for the 6809 and went 
through a few upgrades. Then 
started the era of fast and furious 
development in the area of soft- 
ware. Lots of software was devel- 
oped by hobbyists and then sold 
through '68' Micro Journal and 
other sources. If 1 am correct, 
only Technical Systems Consult- 
ants and Percom. and perhaps 
SWTPC itself supplied soltware 
that was specifically written with 
profit in mind, at least early on. 

There was TSC's original Text 
Editor and Processor combination 
(updated to 6809 FLEX version), 
their Assembler, Lucldata's Pascal 
compiler, followed by a couple of 
"C compilers. The first, from a 
little company that will remain 
nameless, was a disaster. The 
author was not a great program- 
mer, but worse the company 
hadn't the vaguest Idea how to 
test software. There were so 
many bugs that a program com- 
piled under it seldom ran cor- 
rectly. Later Wlndrush Microsys- 
tems In England released a "C 
compiler by James McCosh that 
was as good as the earlier one 
was bad. McCosh is a good 
programmer, and Wlndrush 
knows how to test software and 
respond to bugs reported by 



users. I still use that "C" now 
and then when I fire up the 6809 
system. It is. in fact a direct 
ancestor of Mlcroware's present 
OS9 68K "C* compiler. The folks 
from Mlcroware might say that it 
has come a long way since then, 
and I'd agree heartily to that. 
Other soltware that came from 
that era was the PL9 compiler. 
Stylo Text Editor. OmegaSoft 
Pascal. PIE text editor, a couple of 
implementations of FORTH, and 
much more. About the end of the 
6809 era I received a COBOL 
compiler for evaluation. Just 
about eveiy new piece of software 
that came along (most or all of 
them were written in Assembler) 
showed a greater understanding 
of how to program a 6809. The 
compilers each generated better 
and smaller code than their 
predecessors. One peculiar 
language came along that was 
very good at doing things I don't 
normally do in my programs and 
terrible at doing things that I 
usually do. I let someone else 
review it and it got a fair write up. 

Then, along came IBM with 
their PC and PC -XT and the big 
switch began. Many of the 6809 
users remained loyal and we 
wrote much of our own software, 
but it became evident that there 
would be no more commercial 
software available for these 
systems. I wrote PAT. an editor 
which was about a year's worth of 
spare time effort. I figure I've 
probably cleared about a dollar 
an hour for that effort, but it 
wasn't done to get rich. I really 
did it to prove that good software 
could be written In a higher level 
language (PL9). and that it could 
be sufficiently small to leave a 
reasonable edit buffer, and run 
fast enough to be adequately 
usable. I did end up coding about 
3% of it in Assembler as 



12 



April 89 



58 Merc Jounal 



ASMPROCs In order to speed up 
some veiy processor Intensive 
operations such as string 
searches. 

(I am at the point now with 
the 68000 systems when.- I was 
back about a year after the 6809 
came along. Software Is limited 
but coming. I've managed to get 
enough together to do whatever I 
want to do. and I've filled in with 
some "homemade" utilities In 
assembler, all of which have been 
published here at various times). 

Somewhere along the era of 
all the new software arriving for 
the 6809. I began to slant the 
column more toward program- 
ming In higher level languages, 
and in reviewing the various 
offerings from the suppliers. I got 
In deep trouble with a few readers 
by saying once that I would choke 
(or worse) if I saw yet another 
COPY or DIRectoiy utility for the 
6809 published. My comments 
by pure coincidence appeared in 
the column Just about the time a 
reader sent me a disk with some 
nice things on it, but including a 
directory utility. The writer took 
personal offense and didn't 
believe that my comments were 
not aimed at him specifically! I 
got a veiy nasty letter and wrote a 
couple letters of explanation 
which must have been transferred 
directly to the garbage, because 
there was never another re- 
sponse. (About then I thought 
seriously about quitting this 
column). With regard to the 
comment about Copy or Directory 
utilities, what I had in mind was 
that computers had to serve some 
useful purpose beyond allowing 
their users to create more utility 
programs for the operating sys- 
tem. One "hacker" (I don't use 
the term In any sort of derogatory 
sense) wrote and told me that he 



didn't intend ever to do anything 
useful with his computer! I've 
since adopted a similar attitude 
toward the more typical computer 
uses. I told someone that I would 
quit my Job if I ever had to work 
with or on Database software or a 
Spreadsheet. I do appreciate the 
value of such software and com- 
puter uses, but they are not for 
me. I am an Electrical Engineer 
by education, and I Immediately 
saw applications in the field of 
instrumentation and control of 
machines. It Is In that area where 
my interests lie. So much for 
histoiy except to note that the 
name of this file is NOTES 100. 
Since 1000 months Is 83 years 
and 4 months. I'm sure I won't 
have to shorten the name after 
the 999th column! 

As you may have noticed, I'm 
back into hacking again, writing 
new utilities for the 68000 and 
SK'DOS. Should any of you 
think that after ten or twelve 
years, it must be a total breeze for 
someone to write programs, let 
me tell you about last night. A 
couple of days ago I decided that 
a rewrite of my text processor 
JUST was long overdue. I first 
wanted to set it up to read a 
printer configuration file so that 
the text processor software cold 
be fixed and constant. The user 
could then prepare his own 
printer configuration file using 
only printable characters to 
represent the control sequences. 
That turned out to be a relatively 
easy one-evening plus, project. 
Then I decided to tiy to clean up 
some of the procedures, which 
had "grown" from the initial "keep 
It simple" concept to have fea- 
tures added and more features 
added. I was successful In getting 
It to correctly center and right 
Justify a line In double wide 
printing mode, and decided that It 



would be nice to fix it so It could 
Justify a line with double wide 
printing In it also. 

Having done similar things 
before. I made a careful backup of 
what I had that worked correctly, 
and set off to make the necessary 
changes. That was about 9:00 In 
the evening. Things went from 
not working to still not working to 
not working as well as before, to 
total garbage. At one point. I 
actually was printing out eveiy 
other letter In the line with a 
blank space between! Finally 
about 1:30 AM, I conceded defeat 
and threw away my new effort 
and reloaded my backup. In the 
four hours of effort. I had found 
and fixed one bug. so I added the 
fix to the original file. I guess I'll 
stare at a listing and let that 
project sit for a while. The time 
was not wasted, since I now have 
gotten back into the program and 
have a much better feel for how I 
had done it several years ago. A 
rewrite will be based on what I 
learned. My procedures were all 
much too Interdependent. I'd 
change one line and something 
that ought to be totally unrelated 
would no longer function prop- 
erly. 

When I was a lot younger 
and living in Chicago. I had a 
friend named Dick Nellsen. Dick 
always had a "shortcut" to get 
somewhere. Taking Dick's short- 
cut usually resulted In getting lost 
and taking twice as long to reach 
the destination. Among Dick's 
friends we began referring to 
doing something the hard way as 
a "Dick Nellsen Shortcut". Some- 
times a poorly thought out short- 
cut In tiying to write a program is 
Just that. i.e. doing It the hard 
way. When that happens. It is 
usually best to think about the 
problem a little more and then try 



66 Mora Journal 



April '69 



13 



again. I had a few good Ideas and 
a couple of nights later I started 
again and made at least some 
progress. I now have a couple of 
new versions of JUST both work- 
ing and doing more than the old 
one. but they are lacking In some 
of the features that I want to add. 

I am obviously too much of 
the "start programming and get 
something working, and then 
clean it up later", school. I think 
some programmers go too far In 
the direction of getting It abso- 
lutely light on paper and expect- 
ing It to work on the first try. I've 
said that there is a middle ground 
that should result In minimum 
overall programming and debug 
time, and I observe that when 1 
spend about equal amounts of 
time programming and debug- 
ging. I seem to get the Job done 
fastest. I maintain that If I were 
to spend three times as long 
writing the program. I would have 
about 1/3 as many bugs, so that 
the program plus debug time 
would be about 3 1/3 units. 
Equal program and debug time 
would add up to 2 time units. 
Similarly. 1/2 the programming 
time would result In 2 times as 
much debug time, so that the 
minimum is about wheie the 
program and debug time are 
equal. I realize that this is not 
something that can be derived 
mathematically nor proven rigor- 
ously with logic propositions, (nor 
for that matter anticipated before 
the debug is done) but it would 
seem to be verifiable by experi- 
ence. If I find that I spent too 
long debugging the last program, I 
spend more time writing the next, 
etc. 



Based on my experience of 
the other night. 1 conclude that I 
didn't understand the problem 
thoroughly enough to be able to 
program well. In many Instances 
when I write a program. I don't 
know exactly what It has to do 
until I take a good stab at it and 
try It. Then what it has to do 
sometimes becomes very obvious, 
and turns out to be significantly 
different from the original con- 
cept. This Is particularly true in 
the area of machine control and 
instrumentation, though I am 
sure it carries into other program- 
ming areas as well. If the prob- 
lem is REALLY spelled out well, 
that is a different case, but I don't 
believe that happens In practice 
nearly as often as the theorists 
would have us think. 

Let me give you an example 
of this. I have been working on a 
word processor again, so I'll use 
that. How do we read text from a 
file with ragged right margin, not 
necessarily with every line filled 
as full as possible, and print it 
out fully justified, i.e. each line 
the same length (by Inserting 
spaces in the line). A first ap- 
proach might be to read charac- 
ters from the Input file until you 
have LENGTH characters. If you 
come across a CR change It to a 
space. Now back up through the 
partial word at the end of the line 
(If it Is partial) and past the space 
that separates It from the previ- 
ous word. Of course you count 
the number of places backed up. 
and then add that many spaces 
within the line. You put a CR at 
the end of the line and then print 
It. (How you distribute the extra 
spaces Is another problem we'll 
assume you have solved). Now 
move the partial word lelt over 
from that line to the start of the 
next line and repeat the process 
until end of file. 



If you do that, you will, of 
course have run the whole file 
together into one big paragraph. 
Titles and headers are not part of 
a paragraph. Of course you must 
have a way to tell when a para- 
graph has started and only treat 
the text within a paragraph as 
described above. Some authors of 
text processors choose to make a 
paragraph one long line. That is, 
the editor is set up to handle 
formatting on the screen without 
any CRs In the text. That simpli- 
fies the identification of a para- 
graph, but the file is hard to list 
using an ordinary list utility. I 
chose to use a signal Inserted in 
the text to mark the start of a 
paragraph. ",p" all by Itself on a 
line signals that a paragraph 
starts on the next line. The end 
of a paragraph Is detected by two 
consecutive CRs (a blank line 
after the end of the paragraph) or 
another ,P signaling the start of a 
new paragraph. When the para- 
graph is ended, a partial line 
might remain in the line buffer. 
Of course it has to be printed too. 
and It might as well not have 
extra spaces In it since It will 
probably not be a full line any- 
way. 

Do you see what I am getting 
at? Unless you are an absolute 
genius (or at least a lot smarter 
than i). you won't think of all the 
conditions and exceptions without 
making a stab at a way to solve 
the problem and tiylng it to see 
what happens. Trying to write a 
program that is correct the first 
try is like trying to think up all 
the conditions and exceptions 
without trying what you have 
done so far to see If It works. 
More experienced programmers at 
least think of how a process like 
that described In the previous 
paragraph must start and stop, 
and perhaps they catch a few 



14 



Aprt'89 



60 Micro Journal 



more of the exceptions, but to tiy 
to catch them all without "experi- 
menting" would seem to me to be 
a great waste of time. 

Epson "Enhancement"? 

A few months ago I saw an 
add in Computer Shopper for a 
new ROM to upgrade an Epson 
MX-80 among other moaels. 1 
have a veiy old one that still 
works like new. I had upgraded It 
a long time ago with GRAFTRAX. 
the Epson upgrade, but of course 
it still didn't have "NLQ" mode. 
The ad for an upgrade kit called 
"Dots-Perfect" indicated that the 
upgrade would add letter quality 
and control of printing mode via 
the Online. Formfeed, and line- 
feed buttons, more or less like the 
newer Epsons. 

I sent for the upgrade and It 
has arrived. 1 followed the In- 
structions and it all worked pretty 
much as advertised on the first 
try. but the "NLQ" looks pretty 
bad. In fact not as good as just 
printing in Emphasized mode as 1 
had been doing with that printer 
ever since 1 bought It. Certainly It 
doesn't compare with the LX-800 
in either of its NLQ modes In 
which the characters look veiy 
full and smooth even under a 
magnifying glass. Vertical lines 
are quite obviously zigzag. It 
appears that the NLQ is achieved 
by simply shilling the carriage 
and overstriking, 



The "upgrade" cost $69. In 
my opinion. $20 would be more in 
line with what It does, primarily 
based on the poor NLQ. The 
Epson MX-80 is capable of the 
same graphics resolution as the 
new LX-800. so there is no reason 
that a better NLQ font couldn't be 
done, other than, perhaps, lack of 
ROM space for the font character 
definitions. The upgrade does 
allow selection of fonts and print 
styles using the On Line. 
Formfeed and Linefeed buttons as 
advertised, and those are also 
selectable via soltware compatible 
with the latest Epson LX-800. It 
even has a "small print" mode 
that Is simply superscript mode, 
condensed mode, and half line 
feed all combined. That's nothing 
you couldn't do on any Epson 
with true half size superscripts 
and subscripts under software 
control. I suppose if 1 didn't know 
how to write or configure word 
processing software. I'd be more 
Impressed. 

In would think you'd be 
better off spending that $70 as a 
significant fraction of the cost of a 
new Epson LX-800 or even a 
Citizen 180-D which can be had 
for around $170. It is a nice little 
printer but Its NLQ is a little thin 
compared to the LX-800. 



CRASH! 

1 just found a way to crash 
my editor PAT. I'll mention It so 
you can avoid it if you are a PAT 
user. 1 accidentally typed ESC 
A L. Of course ESC 65 A L would 
set the line length to 65. but with 
no parameter the line length was 
set to 0. 1 didn't notice that, and 
tried to format a paragraph to 
zero width. The "BUSY" notice 
came on. and stayed there until 1 
ran out of memory, at which point 
there was an error message and 
an exit to the monitor. Of course 
all my edit was lost. I'll trap the 
no-parameter case and make it 
not change the current line 
length. Meanwhile, PAT users be 
warned. 



FOR THOSE WHO 




68 MICRO 
JOURNAL 



TM 



68 Mkro Journal 



April SB 



15 



Forth 



A Tutorial Series 



By: R D Lurie 
9 Linda Street 
Leominister, MA 01453 



OF-Link from Sardis Technologies 



At last, a way to combine FLEX 
and OS-9 Level II! Sardis Tech- 
nologies has a real winner, here. 
If you have been reluctant to 
switch to the Color Computer and 
OS-9 because of a heavy Invest- 
ment In FLEX software. OF-Link 
could be the answer to your 
prayers. Now you can have all of 
the advantages of OS-9 without 
losing that hoard of FLEX soft- 
ware you have accumulated over 
the years. 

I don't want to spend any time 
going over the virtues of OS-9 vis- 
a-vis FLEX, as I am sure that you 
have heard enough to be tired of 
that argument. Rather. I want to 
describe my reaction to running 
FLEX programs In this new 
environment. 

First, let me say that not every 
program will work. 1 could not 
find any software In my admit- 
tedly small Inventory of "regular" 
FLEX goodies which would not 
run completely as expected under 
OF-Llnk. However, the copy of 
STYLOGRAPH which I use is the 
one especially tailored to the 
CoCo FLEX sold by South East 
Media, and 1 was not able to 
finagle the patches to make It run 
under OF-Link. Similar troubles 
would arise with any software 
which does not use the standard 
FLEX hooks. The instructions 
which come with OF-Llnk give 
help with some popular software 
which has a problem, but this Is 
still for "regular" FLEX programs. 



There are stringent hardware 
requirements, also. You must 
have a CoCo3 with 512K of RAM 
and two disk drives: otherwise, 
you cannot Install the system. 
However, once OF-Link has been 
Installed, you then can manage 
with only one drive, although it 
will be inconvenient. 

The reason that you MUST have 
two drives is that you must Install 
D. p. Johnson's SDISK3 before 
you install OF-Link. Contact DP. 
Johnson at 7655 SW Cedarcrest 
St.. Portland. Oregon 97223. 1503) 
244-8152. See D.P. Johnson's ad 
on page 59. If you have a DMC 
"no halt" disk controller from 
Sardis. you have no problems, 
since you already have SDISK3. 
If. like me, you have a Tandy, 
Dlsto. or other controller, then 
you must separately obtain and 
Install SDISK3. I followed this 
route with both the original Tandy 
controller and the Disto SCII. and 
built a working system on 
SSDD35 drives, so you can. loo. 
Just follow the excellent direc- 
tions exactly and literally, and 
don't free-lance! 

Once you have a working system, 
you can use modpatch or the 
public domain dmode to change 
to any number of tracks you wish. 
I easily converted from SSDD35 to 
SSDD80 by way of dmode. Unfor- 
tunately. I could not get any sort 
of double-sided drives to work: 



this may have been the result of 
conflicts with my particular 
hardware. Also. I could not get 
more than 2 physical drives to 
work, even though the manual 
gave me the impression that I 
could. However. I had no problem 
with as many as 4 logical drives, 
so this may not be a practical 
limitation. 

There is one "gotcha" which 
comes lrom the peculiarities of 
OS-9 record locking, and not from 
OF-Llnk. In any case, each active 
FLEX device window must have 
its own virtual system file. In 
other words. If you have 3 win- 
dows running with FF9. you must 
have 3 separate virtual system 
files, one to support each device 
window. I solved this "problem" 
by having all but one of the 
virtual windows contain only FF9 
and the absolute minimum of 
other files, such as FLEX. COR, 
etc. Only one of the virtual system 
files contains a full complement of 
FLEX utilities. This saves physical 
disk space. By naming the 3 files 
(remember that these are really 
OS-9 files In disguise) as fvl. fv2. 
and fv3. 1 can call each one as I 
setup /wl . /w2. and /w3. There 
is a way around this problem of 
record locking and it is described 
In the manual: but the technique 
I described above is the one rec- 
ommended as being a lot safer 
and saner! 



16 



April 89 



68 Micro Journal 



Be veiy careful when you start 
sharing FLEX files, since It Is veiy 
easy to mess up the links between 
sectors and the free chain. If you 
should have this sort of accident, 
you are In for a real hassle recov- 
ering from It. Be warned!!! 

Utilities, etc. 

Several very useful utilities are 
Included with OF-Llnk which 
make It easy to Install and use. 
The ones I used the most, and I 
expect everybody will have about 
the same experience, are dpoke 
and newcrc. Dpoke lets you 
change an OS-9 file and newcrc 
updates the crc without the ne- 
cessity of explicitly moving that 
file lrom and back to the disk. 

There Is also a simple monitor 
which will help In debugging 
FLEX programs. Unfortunately, 
this was not fully operational on 
the review-copy of OF-Llnk which 
I received, so I can't say more 
than that It certainly looks good. 

FF9 under OF-Llnk 

So much for the preliminaries, 
now for the Important stuff! ! 

I think that the first question 
answered should be. "Why 
bother?" Well, that Is the easiest 
question to answer. With OF- 
Llnk, you gain: 

1. 80-column screen 

2. windows 

3. graphics 

4. color 

Ok. if OF-Llnk Is so good, what do 
you lose? The only lost feature of 
FF9 that I have been able to 
Identify, so far. Is the direct 
Interface to the machine. How- 
ever, this Is a characteristic of 
OS-9. and not solely of OF-Llnk. If 
you use your FLEX software for 
machine control, then you must 
either choose between the great 
conveniences of OF-Llnk and the 
necessity for writing OS-9 device 



drivers or go back to your old 
system. No. I have not yet written 
a successful device driver from 
scratch — something I have to 
learn. It may be possible to use 
the OS-9 call F$MAPBLK, as Is 
done in FOKTH09. but I have not 
worked that out. either. 

The 80-column screen Is a bigger 
Improvement over the 5l-column 
screen than I had ever expected. 
As of now. 1 have put aside my 
SS50 and separate terminal In 
favor of the CoCo3. This. In my 
not -so-humble opinion, alone Is 
worth the cost of the software! I 
may resurrect the SS50 at some 
later date, but I can't Imagine 
when or why that would be. 

Windows let me have several 
copies of FF9 going at once, so 
that I can flick from one program 
to another Just by pressing the 
<CLEAR> key. Again. I am sure 
that you have been Inundated 
with praise for this feature of OS- 
9. so I won't spend time on the 
hard sell. 

By graphics. I don't mean Just the 
crude cartoons to the excellent art 
that Is possible, but also the full 
business and engineering-style 
graphics that can be generated by 
the lowly EMIT . 

Color Is available, as expected. 
The options and limitations nor- 
mally available under RSDOS or 
OS-9 are all there. If you have the 
hardware, you can access them. 

Melding FF9 to OF-Llnk 

OF-Llnk gives you the option of 
using the normal hardware FLEX 
disks or the virtual FLEX disks 
which actually are resident as 
OS-9 files; FLEX Just thinks that 
they are the usual disk. 

For use under OF-Llnk. the 
virtual disk Is to be preferred. 
This Is particularly true If you 
have a hard disk; you can easily 
partition It Into FLEX and OS-9 



segments. OS-9 would think that 
there were only OS-9 flies pres- 
ent, and all of the OS-9 file utili- 
ties would work. However, don't 
try to use a FLEX file utility on 
one of the OS-9 virtual FLEX files; 
this Is fatal! You can boot FLEX 
from the virtual disk on the hard 
disk, so you don't have to keep a 
floppy around Just for that. 

The virtual FLEX disk has 64 
sectors per track, so you must 
modify the FF9 disk parameters 
accordingly. Assuming that you 
have formatted your virtual FLEX 
disk to have 24 tracks (to produce 
368 screens), you would modify 
FF9 by entering: 

24 * TRK/DRV >BO0Y ! 

64 ' SEC/TRK >BODY ! 

1 * BASCTRK >BODY ! 

According to my calculations, a 
single virtual disk could have as 
much as 2032 screens. If the disk 
is large enough. Of course, a 
physical disk can have more than 
one virtual disk! 

Summary 

Do I like OF-Llnk? You bet I do!! 
Do I recommend OF-Llnk? You 
bet I do!! 

Sources: 

OF-Link, $49.00 (+$5.00 SAH) 

Sardis Technologies. 2261 East 1 llh. Ave., 

Vancouver, B.C.. Canada V5N 1Z7 

SD1SK3. $29.95 (+$1.75 SAH) D.P Johnson. 
7655 S.W. Ccdarcresl St., Portland. OR 97223 

FORTH09 ver. 1.02 

Dan Johnson has addressed my 
complaint about FORTH09 
shadow screens which I expressed 
In my review last time. He now 
allows a command line option *-n" 
which eliminates any call to 
shadow screens, so you are not 
forced to provide for them. 
Thanks, Dan, I appreciate that! 



68 Micro Journal 



Apnfl '89 



17 



FORTH09 has some quirks which 
take a bit of getting used to. 
These quirks are forced by OS-9 
and are not something to be 
changed on a whim. The most 
obvious difference with a FOKFH 
operating under OS-9. as opposed 
to another environment. Is that 
ALL absolute addresses are 
Illegal. Therefore, you cannot 
legally use Jump vector tables. 

My observation that the form 
shown In Screen #3 of my last 
column would work resulted from 
a peculiar set of circumstances. 
This win only work If you compile 
the screen each time you use It; 
you cannot run from a SAVEd or 
a SAVESYSed binary file, since 
the absolute addresses would 
then be wrong! Dan also said that 
this would not work under Level I. 
so I did not bother to try it. 

The proper way to do vectored 
execution in FORTH09 is through 
the MAYBE ...THENAGAJN... 
MAYBE NOT construct (1 love 
Dan's choice of names). A work- 
able definition is 



: EXPERIMENT ( n - ) 

MAYBE EXO 1 EX1 2 EX2 1 EX3 MAYBE NOT 



One can easily make OS-9 calls 
directly from FORIH09. and Dan 
has provided most of the words 
one could ever expect to use. 
Furthermore, he has provided 
enough information so that defini- 
tions can be quickly written to 
cover the obscure calls that he 
did not bother with. 

Among these calls are F$ALLRAM 
, F$MAPBLK . and F$CLRBLK . 
which can be used to access 
directly any RAM within reach of 
the MMU. These words can be 
used to access any RAM block, so 
that FORIH09 is limited only by 
the available memory. I wonder if 
this kind of thing could be used 
to control a latch which bank- 
switched additional chunks of 
RAM, so that the CoCo3 could go 
even beyond the present 512K? I 
don't plan to try it. but I am 
cuilous. 

Another way to access OS-9 Is 
illustrated In the definitions 
contained In Screens 46-48. 
Actually, several features of 
FORIH09 are illustrated in these 
three screens. 



This definition will accomplish the 
same result as the set of dellnl- 
tlons and commands I had shown 
in Screen #3. 

Remember, the method shown in 
Screen #3 is still valid for other 
environments, Just not for OS-9. 

OS-9 «ccet» from FORTH09 

Here is another example of how 
much I still have to learn about 
OS-9. I had read all the way 
through (tough going) the manual 
which came with my CoCo OS-9 
Level D, but the significance of the 
few lines on manipulating the 
MMU did not register through all 
of the other noise. However, the 
documentation on FORI"H09 
finally woke me up. 



1 won't spend much time on the 
first two screens, since they were 
discussed In some detail in Sep- 
tember. 1987. The only really 
Important points, here, are in the 
use of VAR , instead of VARIABLE 
. to define ARGC (line 3 of screen 
46). Line 5 of screen 46 and line 7 
of screen 48 are identical in 
showing how to place a value into 
a VAR . There is no FORFH need 
to use the loading command 
twice, but these screens come 
from my new FORrH09 utility file, 
so that screen 46 can be used 
with a reasonable default value in 
ARGC . when It is loaded wilhout 
screen 48. On the other hand. 
ARGC is loaded in the definition 
of HARD Just in case I might have 
used ARGC somewhere else, so 
that the value got changed. This 
is simply cheap Insurance against 



an annoying crash! 

Screen 48 shows the use of CR" 
and SHELL . two words which are 
unique to FORI"H09. CR" places 
the address of the CR-teiminated 
string on the Data Stack. The 
string literal must end with a " . 
SHELL then uses this address to 
pass Ihe string along to the OS-9 
shell for execution and then 
return control to FORIU09. As 
you can see, this causes the 
cuirent date and time to be 
printed along with the screen 
listing. 

Hardware control through 
FORTH09 under Level n 

I may well be the only one in town 
who did not realize that, with 
FORTH09. I could directly access 
the hardware located at physical 
addresses $FFOO-$FFFF. In other 
words, this command line: 

fload forth -n 148k 

gives me 8K. starting at logical 
$COOO to play with through 
F$ALLRAM . etc. and lets me 
write directly to the hardware 1/ 
O. such as the casette motor 
relay, or anything else located at 
the physical addresses $EOOO- 
$FFFF. 

I tried to do this hardware access 
from BASIC09, but I could not 
find a way to make it work in 
Level II. Undoubtedly, it must be 
illegal, since It Is so desirable and 
easy! In any case, the whole thing 
is perfectly straight forward in 
FORTH09. For example: 

: MOTORON 4 6S313 C! ; 
: MOTOROFF 52 65313 C! ; 

Speaking of timing tests. I hope to 
include some benchmark results 
with FORIH09 in the near future. 
I am impressed with the speed of 
most of the operations: most of 
the ones that I have checked to 
date are faster than can be ex- 
plained by the simple increase in 
processor speed! 



18 



April '89 



68 Micro Journal 



Screen 46 

\ ARGC HELP-SCREEN 

\ A part Of PARSE -COMMAND- LI(E 

VAR ARGC \ expected i 

2 TO ARGC 

I HELP-SCREEN ( - ) 

CR CR 

Two input parameters are required 

1 . f irat-acr#" CR 

2. laat-scr»" CR CR 
In no caae, can the value of " 
firat-acr»" ASCII * EMIT 
be greater than the value of * 
laat-acr»." ASCII * EMIT 



October 22, 1988 19:19 


:30 


RDL102088 


10 




11 




12 


»r of input parameters 


13 




14 




15 




16 


\ RDL062587 


17 




18 


1:" CR 


19 




110 




111 


ASCII "* EMIT 


112 


CR 


113 


ASCII " EMIT 


114 


CR ; 


115 



Screen 47 

\ ARGV-OK PARSE-03«AND-LINE 

\ Requires previous screen 



I nl n2 - ) 



< \ first-scrt cannot be greater than last-serf 
HEIP-SCREEN 



ARGV-OK 
2DUP 
SWAP 
IF 

ABORT 
THEN ; 



PARSE-COMMAND -LINE 
DEPTH ARGC < 
IF HELP-SCREEN 

ABORT 
ELSE ARGV-OK 
THEN ; 



{ - ) 



October 22, 1988 19:19:34 

RDL102088 |0 

II 

12 

\ RDL1 02088 13 

\ duplicate the input parameters I 4 

15 
16 
17 
18 
19 
\ RDL1 02088 110 



\ minimum acgumant count? 

\ wrong number of arguments 

\ start over 

\ verify argument validity 



111 
112 
113 
114 
115 



Screen 48 
\ SHOW 

SECONDARY DECIMAL 

46 47 THRO 

: HARD ( first-scrt laat-scrt - ) 

2 TO ARGC PARSE-COMAND-LINE 

>PRINTER 

14 SWAP DO 

CR ." Screen * I 

30 SPACES CR" DATE T" SHELL 

I LIST 

CR CR 
LOOP 
>SCREEN ; 



October 22, 



1988 19:19: 
RDL102288 



\ RDL102288 16 



37 

10 
II 
12 
13 
14 
|S 

17 

18 

19 

110 

111 

112 

113 

114 

115 



FOR THOSE WH 



91 X 1.1 I) TO KXOW 



68 MICRO 



JOURNAL 



TM 



68 Mcro Journal 



April -80 



16 




Moil Of you will rononber 
Bob from hii tciic* of tellers 
onXBASIC If you lite il or 
wtni more, tel Bob or us 
toow We winl U) give yiw - 
mhal y>n waul! 



The Mathematical Design of Digital Control Circuits 



By: R. Jones 

Microma Reseirch Corp. 

33383 Lynn Ave.. AMwuford. B.C. 

Cuud* V2S IB2 

Copyrighted © by R Jones & CPI 

No TEST last time, ergo no solutions either! 

Mile 20 - heading for Mile 2 1 . 

Last time, we got Introduced to Boolean matrices, and learned how to interpret a matrix to let us trace paths 
through Its corresponding circuit, and we also met Pivotal Condensation, a technique which allowed us to derive 
a transmission function from a Boolean matrix. Now we'll learn the second oflhe two techniques I promised, 
which has certain advantages and also some disadvantages compared to the first. 

LAPLACE 8 DEVELOPMENT 

Our second method, known as Laplace's Development. Involves the reduction of our matrix-a to a final 3-by- 
3. or several 3-by-3s. which, for the benefit of those of you who are familiar with matrix and determinant theory 
in advanced algebra, will then be evaluated In the same way as a third-order determinant. Except that all "- 
" signs will be replaced by "♦" signs, as there Is no such thing as a minus sign In logic theoiy. at least not at the 
level at which we're using It. For those of you who've never even HEARD of a determinant. I'll explain everything 
that it's necessary for you to know in order to work with a third-order Boolean determinant, which is nothing 
more terrifying than an end-result 3-by-3 matrix to all Intents and puiposes. 

For our first example, we'll begin with our matrix-a of Diagram 102. from which, as you'll see. we'll derive the 
function f l2 In no time at all. For 4-by-4 matrices. Laplace's Development gives a very quick solution indeed, 
but tends to become Increasingly cumbersome as we proceed to matrices of higher order, for which I'd 
recommend using Pivotal Condensation. 

DERIVING A DETERMINANT FROM A FOURTH-ORDER MATRIX 

You'll recall that In our first method we eliminated all nodes, commencing with the highest numbered node, until 
we ended up with only those of interest, namely nodes 1 and 2. Strange as it may seem, our new technique seems 
to dojust the opposite. That is. as were Interested In the function f |r WE BEGIN BY ELIMINATING ROW- 1 AND 
COLUMN-2 ENTIRELY from matilx-a. Actually we'll just loop them In red. but. for all practical puiposes we've 
scratched them out. Bang! They don't exist any more! How about that for a quick vanishing act? Then we write 
down all that remains, as In Diagram 104. and we have our third-order determinant. Note that there's no row- 
1 or column-2! Because of this fact, our determinant Is strictly for f 12 . 

EVALUATING A THIRD-ORDER DETERMINANT 

I 5 fc 

t 

2 

51 



£ 



b a 

'A: 






Diagram 104 



20 



Apnl 89 



68 Micro Journal 



The best way for a newcomer to "evaluate" such a determinant Is to Imagine a duplicate copy of 104 written 
immediately to Us right (why don*t you do just that?) , and then to follow my explanation step-by -step. The dotted 
lines are merely to show how a more experienced "reader" would achieve the same result without the need of 
the duplicate copy alongside. 

What we have to do Is to commence In the top-left corner, and slant down diagonally to the right until we reach 
the bottom row, multiplying together (that Is. ANDlng) the three elements encountered along the way. Our first 
effort produces 0.1.1 (which I haven't dotted, for clarity's sake). Then we move along the top row to the next 
element, and again we'll slant down to give us "bdc*. which we'll add (that Is. we'll OR) to what we've already 
got, so now we've got "0. 1. 1 + bdc". And once more, along to the top-right element, and slant down to give another 
block of three literals, viz. "eda". Newcomers will now slide along lhe top row and Into the duplicate matrix, doing 
exactly the same thing hut slanting downwards TO THE LEFT this time, to add yet another three terms to our 
expression. Once again. I've omitted the dots through the main diagonal, otherwise we wouldn't be able to see 
anything for dots! To give a complete picture. Ill mention that In normal algebraic operations, the second set 
would be SUBTRACTED, not ADDED, but everything Is ADDED In Boolean algebra. 
So now we have 

0. 1. 1 + bdc + eda + O.d.d + b.a. 1 + e. 1 .c 
= + bdc + eda +0 + ab + ce 
= ab + ce + aed + bed 

and we're not at all su rprlsed to find that this Is the same as that found by path-tracing. In actual fact, of course, 
as we write down the original terms from the determinant, we'd omit completely any which contained a "0". and 
we'd also omit the " l"s from any term which contained one. This would immediately give us the second of the 
three expressions above, but without the O-terms! 

That wasn't so bad after all. was It? So now you know about Boolean determinants! 

FIFTH-ORDER BOOLEAN MATRICES 

Wow! Just look at that heading! Enough to set you running for cover, isn't It? So let's Just sneak up on it. and 
see if we can't lick this one too! 

I mentioned that this method gets rougher as the size of the original matrlx-a grows, but 1 think we're brave 
enough to tackle a 5-by-5. If not. there's always the helicopter back along the trail! All right then, we'll try our 
hand at the 5 x 5 of Diagram 105a. 





1 2 3 


*♦ S 




1 3 


1* S 




1 


r l a c $ 


2 


b e c 




2 


1 b e c 


t 3 


a 1 d J 




3 


a b 1 d d 


F «*i, 


c d 1 d' 




ft 


c e d 1 J 


*l 


b' a' d' 1 




5 


kj c <i 4 i. 




(a) (b) 




bee 




bee 




bee 


a 


d t d' 


+ c 


1 d a 


+ b' 


1 d a 




a' d* 1 




a' d' I 




6 1 


J 



fc) 



Diagram 105 



68 Mcro Journal 



April 69 



21 



DERIVING A FOURTH-ORDER DETERMINANT FROM A FIFTH-ORDER MATRIX 

First of all. we'll establish that It's f,, we're Interested in, by eliminating entirely from 105a both row-1 and 
column-2 to give us the fourth-order determinant of 105b. Observe the convention of Indicating a matrix with 
delimiters to the right and left, with a curved top and bottom, whereas a determinant is delimited with simple 
straight lines. So ... curved lines mean that the matrix, even a reduced one produced by pivotal condensation, 
precisely describes Its original network. Straight lines indicate that at least one column and row have been 
COMPLETELY eliminated, and not absorbed into a new matrix, as happens with our first technique. It's 
possible, with experience, to read fourth-order determinants quite accurately, but as we're essentially lazy at 
heart we'll reduce ours to the slmpler-to-handle third-order variety! 

NOW FOR OUR THIRD-ORDER DETERMINANTS 

We 11 do this scientifically, by selecting ANY SINGLE ROW OR COLUMN for elimination, preferably one with as 
many 0-entries as possible. The reason for this will become clearer as we proceed! Here we have a choice of 
either row-2 or column- 1 (there is no row-1). so let's select column- 1 and loop it in red. 

We're now going to work our way down the selected column, one element at a time, and omit the row in which 
this element occurs. This element will then be multiplied by (ANDed with) the 3-by-3 determinant which 
remains. In case this all sounds a little confusing, and I've no doubt that it does, just tag along with me as I 
actually do this. The first element in our selected column isO, which, as I've just mentioned, has to be multiplied 
by some determinant. However, as times anything is equal to 0. we've really got nothing to do here. See now 
why we love to have as many Os as possible? 

Anyway, moving down to the next element, "a", In row-3, we must mentally eliminate row-3 from our 4-by-4 
determinant of 105b (keeping In mind that column- 1 is already gone. In theoiy anyway), and create a little 3- 
by-3. which we've written in 105c, with an "a" to the left, as this is the element Involved In the deleted column- 
1. Then down to the next element In this column, namely "c\ eliminate row-4 in our minds, and write THIS 
remaining 3-by-3 with a "c" to its left, and a "+" sign between the two third-order determinants to indicate that 
they're going to be ADDED together (that is. ORed). And finally to element b' In column- 1 of 105b which gives 
us the end determinant with a b" to its left. Now re-read my original instructions, and you should be able to 
follow them this time! 

MINOR DETERMINANTS 

These final determinants, not being the full determinant of 105b, are Individually called "minors". And now 
comes the tedious task of evaluating these minors, as we did with the 3-by-3 of our earlier example, and 
multiplying each one by whatever is outside It. This is the time when I wish that the column had more Os tn 
it! It's got to be done, however, so let's get on with it, first of all setting out the expression In full. 

a(b + ed'a" + cd'd + bd'd' + ed + a'c) 
+ c[bd + ea'a' + cd' + bd'a" + e + cda') 
+ b'(bdd' + ea'd + c + ba' + ed' + cdd) 



Now comes the horrendous task of multiplying each line of this complex expression by the literal outside each 
set of parens. But first note that inside each set of parens a single literal occurs, and we can therefore eliminate 
any term which contains this literal. At the same time, any term which contains the complement of the literal 
OUTSIDE the parens may be eliminated, because when multiplied together we'll have the situation xx'y, and 
as we know from our basic Boolean algebra (we do remember, don't we?), xx' = 0. thereby cancelling out this 
term. We've also got several occurrences of this sort INSIDE the parens! So let's do this reduction first, to give 
us 
a(b + ed) + c(bd + cd' + a'bd' + e + a'cd) + b'ta'de + c + d'e + cd) 

which then multiplies out to 

ab + ade + bed + (cd' + a'bed') + ce + a'cd + a'b'de + (b'c + bed) + b'd'e 

22 April '69 68 Micro Journal 



I've highlighted Iwo sets of leims Inside parens, where we see lhal as the smaller term Is contained In lis entirety 
within the larger term, the larger term can disappear. 



cd\oo en II IO 
CO 
Ol 

II 

10 







1 








1 




1 


1 


1 


I 


1 


1 


1 


I 



cd Xoe PI II 
oo 

ox 

II 
to 



1 




1 


1 


1 




1 


1 


1 


1 


1 


I 


1 


1 


1 


1 



Diagram 106 



The simplest way to finish off the simplification Is lo draw up a 5-varlable K-map as in Diagram 106. and read 
oul the expression as 

f 12 = ab + c + b'e 

If this all seems like a lot of work from beginning to end. Just imagine what would have been Involved If we'd 
started off with a 6-by-6 matrix, this would have reduced to a 5-by-5 determinant, which would have reduced 
lo live 4-by-4 first minors. EACH OF WHICH would then have reduced to four 3-by-3 second minors, for a grand 
total of twenty 3-by-3 minors to evaluate and simplify. Can you Imagine this? Not lhal it would be EASY by 
the Pivotal Condensation method, but I think it would be far. far easier than this!! 

MULTIPLE-OUTPUT NETWORKS AND BOOLEAN MATRICES 

Now that we're rolling along nicely and smoothly, lets recall my earlier bit of info lo the effect lhal Boolean 
matrices can keep track of several outputs simultaneously. We'll even complicate things a little, by making our 
outputs share part of the same network! 







la 

4- 


- 




fo) 




H 


II - s - — 




1 2 3 


h S 


1 


2 


1 


'{0 


a c N 


I 


r i 





2 


1 a 


b 


2 





1 


3 


a 1 


e 


3 


ce 


a 


U 


q b 


I d 


4 


o 4- cd 


b 


5 


c c 


' »j 









ce 

a' 

I 
de 



+ cd* 1 

b 
de 

I 



fc> 



2 
3 



I b(a 4- cd) eCc + ad)^ 

k(a + cd) I a' 4- bde 

eCc ••- ad) a + bde I 



(J) 



Diagram 107 



68 Mcro Journal 



April '89 



23 



The circuit of Diagram 107a is a three-terminal network, with power input at node-1. two outputs (Zl and Z2] 
at nodes 2 and 3. and two intermediate nodes, 4 and 5. Its Boolean matrix is shown In 107b. so we'll begin a 
preliminary, partial analysis by eliminating nodes 4 and 5 from matrlx-a. leaving only the terminal nodes 1. 2 
and 3. 

First, let's eliminate node-5 by Pivotal Condensation, to produce malrlx-b of 107c. and then node-4 to give 
matrix-c of 105d. Note that these are MATRICES, not DETERMINANT'S, as we haven't actually eliminated 
anything, but merely CONDENSED our original matrix! In our final third-order matrlx-c. element a l3 details 
the paths from node- 1 to node-2 (but NOT via node-3), a 13 the paths *from node- 1 to node-3 (but NOT via node- 
2). and a u the paths from node-2 to node-3 (but NOT via node-1). 

EVALUATING INDIVIDUAL PATHS 

If we wish to lind the expression which describes the complete transmission-function f between nodes 1 and 
2. we must eliminate node-3 by Pivotal Condensation, to produce 

f 12 = b(a + cd) + e(c + ad)(a" + bde) 
= ab + bed ♦ (ce + ade)(a' + bde) 
= ab + bed + a'ce + bede + abde 
= ab + bed + a'ce 

Note that thellnal term supplies power to Zl via node-3! In similar vein, in order to find f 13 we'd eliminate node- 

2 from 107d Instead, and if. for some reason, we were interested in knowing under what conditions nodes 2 and 

3 would be connected together, we'd eliminate node- 1 Instead. The finally cleaned up functions are given below, 
which you could check for yourselves by actually doing each evaluation. 

f 13 = ce + ade + a "bed 
f M = a* + bee + bde 

A systematic method of node-elimination such as this gives us the transmission-function between any pair of 
nodes desired, automatically taking into account ALL possible paths through the network. Our other alternative 
Is to actually trace out the paths in the circuit-diagram, always with the possibility that one or more paths would 
be overlooked. You'll have noticed that the Laws of Boolean Algebra really come into their own during this 
reduction process, as the work is made much simpler if the elements are simplified as we go along. For example, 
when reducing from 107c to 107d. the element c l3 starts out as 

ce + (a + cd)(de) 
and Instead of just inserting this complex little beast Into element c 13 , we multiply out and simplify first. 

= ce + ade + cde (cde vanishes because of ce) to give e(c + ad) 

CONNECTION MATRICES AND OUTPUT MATRICES 

A matrix such as that of 107b. which contains only one literal per element is known as a "primitive connection 
matrix", while matrices such as 107c or 107d. which contain more than one literal In any element, are called 
simply "connection matrices". 

There's a third type of matrix, known as an "output matrix", which charts, not the physical connections in the 
network, but the FUNCTIONS describing the transmissions between nodes. As an example of an output matrix, 
we could draw up a 3-by-3 for our present circuit, and insert in each element the three transmission-functions 
Jusl evaluated individually. Such a matrix would, in each element, give the complete transmission-function 
between the nodes forming Its co-ordinates IRRESPECTIVE OF WHEIHER SUCH A PATH GOES THROUGH 
ANOTHERNODE OR NOT. whereas a normal connection matrix describes the connections between these nodes 
BUT NOT VIA ANY OTHER NODE WHOSE NUMBER APPEARS IN THE MATRIX CO-ORDINATES. 

The output matrix for the network of 107a is constructed by Inserting the three transmission functions already 
worked out. as shown next. 

24 April '89 M Uiao Journal 



1 

2 
3 



I 



b(a + cd) 4- ace 
e« +■ ade +■ e/bcd 



2 3 

b(a ♦■ cd) + cfce ce + ode +- abed 
> cr** bcfc 4 d) 



a 4. b*(c + d) 



Diagram 108 



The element d 14 now gives, not the PATH between nodes I and 2. but the CONDITIONS [ALL the conditions) under 
which transmission will occur between these nodes. Take time out to think this over, so you're reasonably clear 
about the distinction between the matrices of 107d and 108. even though both of them belong to the SAME 
network. 

That's got the ANALYSIS part of this thing out of the way. so now for SIMPLIFICATION. This wll always be our 
line of attack, first analysis, then simplification, and then the big one - synthesis. 

NETWORK SIMPLIFICATION BY BOOLEAN MATRICES 

Are we all ready to move on in our study of Boolean matrices? If so. we'll Illustrate the versatility of our new 
tool by eliminating, by Pivotal Condensation, the non-terminal nodes 3. 4 and 5 from the network of Diagram 
109. thus deriving the FUNCTION f l2 in Its simplest form. 



-n 



a 3 



Hr 



J * 



j£. 



-IF 



e a 



4* 



a* 



Diagram 109 

In our previous examples, no simplification was possible, as was obvious from the final expressions derived. 
The matrix for circuit 109 and the subsequent step-by-step elimination of its non-terminal nodes are set out 
in Diagram 110. The finally simplified expression for f ]2 shows that the original network can be completely 
replaced by a single NO-contact on relay-D, as this is all that's necessary to specify the transmission-function 
between nodes 1 and 2. Without Boolean matrix techniques, we'd never be able to figure this out from the 
network, as it's quite a tough Job even to figure out Its Boolean expression directly! 



1 


1 


2 



3 

a 


<* 


r ■> 


1 


i i 3 
( do a 


<r 
ac 


2 





1 





e a+ d 


2 


ad 1 


e + a -»-d 


3 


a 





1 


d 


3 


a I 


d 


k 





e 


d 


\ d 


t* 


a'e c+ a +-d d 


I 


5 


a' 


a + d 



(4 


e* 1 


fc> 




i 

2 


f 


1 

1 

a'd 


2 

a'd 
» 


3 

a +de' 

d 


(< 


f,2 -a'd" + J(a + Jd) 
>) » a'd + ad" + de 




3 


a 


♦ de' 


d 


' J 






=» d(a + a + O - 


dO+c' 



Diagram 110 



68 Mora Journal 



April '89 



25 



Suppose, in addition, lhat there were an additional output being taken off at node-4 to drive some other device, 
and we desired to know the transmission-function f M . as well as f 12 Now we're getting a little complicated, to 
say the least, but let's go along with this assumption. Node-5 has already been eliminated in 1 10b. so we'll now 
proceed lo eliminate nodes 2 and 3 (so only 1 and 4 will be left), commencing with node-3 to produce the matrix 
of Diagram 1 11a. from which we'll work out the function f ending up with **a'e' + d". 





1 2 


V 


1 


C 1 o'd o'e'+od 


2 


o'd I e *■ a + d 


4 


<aV -»- <aci e 4- a 4- d 1 


} mJ 


2 , 




ii 




IK If r *- 










If 






Diagram 1 1 1 





r l«* 



f ltt , - aV ♦ ad 4- a'd(e+a+cO 
s» a'«' ■+- ad •+ a'de 4- a'd 
« a V -v a J 4- a'd 
= aV-4dCaW) 
= oV 4- d 



The COMBINED dual-output circuit of the two simplilled functions is shown in 111b. But let's not 
forget.however. that MATRIX CONTRACTION YIELDS THE SIMPLEST FUNCTION, AND NOT NECESSARILY 
THE SIMPLEST CIRCUIT. If you don't believe me. Just go back and look at the FUNCTION derived from matrix 
contraction in diagram 104, and the circuit diagram which we could reasonably expect loconslructfromit. The 
simplest CIRCUIT is. of course, the original one of 101 . but the simplest FUNCTION describing it is that which 
describes the equivalent circuit of Diagram 100b. All clear? 

MORE CHIT-CHAT 

While matrix contraction yields the simplest transmission-function, matrix EXPANSION, which we'll be 
studying shortly, gives us a simplified circuit-diagram, if one exists. Don't be confused by the fact lhat matrix 
contraction has Just given us a MUCH SIMPLER network, as it often happens that the simplest function is co- 
incidenlally the simplest circuit also. If this DOES occur, remember that it's Just an accidental side-benefit 
derived from the true purpose of contraction, and you'll never be really sure whether it's truly the simplest 
circuit. Unless, of course, you end up with Just a few simple contacts, and you can tell at a glance that 11 can't 
be reduced further. 

And now it's TEST-time again for all you lucky people, so let's have a go at the following, but think carefully before 
you answer the question posed in Problem 2! 

TEST FIFTEEN 



1. Evaluate f l2 by means of Laplace's Development, and draw the final circuit. 



\ 



-& 






-th 



h£ 



-L*/ 



■I*. 



tV 



-#4- — #£- 



26 



April '89 



68 Micro Journal 



2. Nodes 1. 2 and 3 are terminal nodes. Eliminate nodes 4 and 5 by Plvolal Condensation, and draw the final 
circuit diagram. Is this a simpler circuit? 




3. Evaluate f l2 by means of Pivotal Condensation and draw the final circuit. 




CAMP TIME AGAIN 

Come on now. and admit that although this has been a VERY complicated few miles, this new stuff is nowhere 
near as terrifying as our encounter with the Laws-of- Boolean Swamp. And Just think what It can do for your 
design skills? 

Anyway, while you're working at these three problems. I'm debating whether to lead you into another of those 
word-logic problems, similar to that Involved in Uncle Fred's experiences with 1-asku of the M'bulyan tribe. I'll 
let you know when we're ready to move off once more. 

... End of Mile 20. and all gathered round marker Mlle-21. 



FOR THOSE WH 




68 MICRO 
JOURNAL 



TM 



66 Micro Journal 



April '89 



27 



Mac-Watch 

Kqt Those 



83 




1 
























■ i 



68 MJ 



^^JhHHLX 



Tne Macintosh* Section 
Reserved as 



A pllei«® flfarp wfannr? ft fa <a nn fgi Bn ft a 
And ours. 



This and That 

Reviews of MaxPage and QulckLetter 

By James E. Law 
1806 Rock Bluff Rd. 
Hlxson TN 37343 

This month I want to briefly review several new 
software packages starting with MaxPage which its 
distributor. Applied System and Technologies, de- 
scribes as 'the affoidable page makeup program." 

A Review of MuF\ge 

A logical part of us knows that you don't get 
something for nothing but In spite of this, we 
search for that rare deal where we get a treasure for 
pennies. Occasionally it works out but most of the 
time you get what you pay for. When I received a 
piece of software which advertised page layout 
capabilities for a suggested retail of $89. my curi- 
osity was peaked. Could it really deliver? Let's find 
out. 

When you first open MaxPage. a blank page is 
presented with a set of menu bars. The page may 
be in landscape or portrait orientation. You may 
activate a grid (maximum size of 17" by 17") for ease 
in locating text or other items on the page. Oddly, 
the default settings are for the grid to print out 
when you print your page, but it may be ordered 
not to print. It is specially marked to facilitate the 
layout of bifolds and trifolds. There is only one view 
of the page - full size - and no page preview is 
provided. This is an unforgivable onunlssion for a 
page layout program! 



Working With Text 

To work with text, you first create a text block 
by clicking and dragging the cursor. Each text 
block has a drag handle for use in ie sizing the 
block. You can move text blocks around and 
position them anywhere you like on a page. There 
can be up to 75 text blocks per page. 

Upon sizing and positioning a text block, you 
can enter and edit text in the usual fashion. 
Multiple fonts and sizes within a text block are 
supported. Text can be typed into text blocks or 
imported horn other applications. Text can be 
aligned left, right, or center but may not be flush 
Justified. No tabs are available. MaxPage allows 
considerable control over line spacing. \bu can 
adjust the leading above or below the selected line 
or have leading automatically adjusted based on a 
number of options. 

If you enter or Import more text than a text 
block can hold, it stacks below the visible area of 
the text block. The hidden portion of the text can 
be seen by re sizing the block. This excess portion 
of the text can also be made to wrap over to a 
different text block on the same or a different page. 
This is a manual process that might work okay for 
a simple one or two page document but would not 
be practical for a more elaborate pioject. 

Blocks aie also used to accept and position 
PICT (draw-type) or PNTG (bit mapped) images. 
The image is automatically scaled to fill the active 
picture block. If you re size the block, the image is 
ie sized. MaxPage takes a highly unusual ap- 
proach to handling (mages in that the image is 
referenced to its location on your drive and is not 
leally Imported into MaxPage. Every time the page 



28 



April '6 



68 Mcro Journal 



is re drawn, the image is re-imported. This means 
that the image file must stay on the same disks as 
the MaxPage file. For a complex image, a notice- 
able delay occurs in redrawing the page, lb avoid 
this delay, you may elect an option in which images 
are neither displayed or printed. 

Background* 

MaxPage allows you to import a full page PICT 
image into your document as a "background." 
Unlike the image handling covered above, back- 
grounds are actually imported into and become 
part of your MaxPage document. This feature is 
intended to contain master elements (e.g., bor- 
ders, letter heads, or logos) or to serve as a design 
templet. 

Conclusion 

After my look at MaxPage, I conclude that you 
get what you pay for. . . maybe. What MaxPage has 
going for it is its cheap price. Disadvantages 
include the lack of page preview, no text tabs or 
Justification, and nonstandard ways of handling 
graphics. If all you need is to lay out simple, 
occasion, single page, perhaps MaxPage will serve 
your needs. All in all, however, I cannot recom- 
mend this product.. 



A Review of QuickLetter 

Over recent years there have been a number of 
mini woid processors in desk accessoiy form for 
the Macintosh. The quality and number of fea- 
tures in those programs varied widely but with a 
few being quite powerful. I have just received 
QuickLetter from Working Software, Inc., and it is 
a jewel. 

What it Does 

QuickLetter is primarily designed for one thing 
- wilting letters. Tb that end it provides for setting 
up standard statlonaiy (with letter heads and 
logos), maintaining an address book. Importing 
addresses into your correspondence, and printing 
letters and envelopes. 

When you open QuickLetter, you may use the 
default "statlonaiy" (to be discussed later), open 
other McWrlte or QuickLetter documents or create 



a new document. Your document then appears as 
does a ruler (which may be hidden) with various 
tools and a set of menu bars. Your document may 
be either landscape or portrait oilentation in any 
standard size. 

QuickLetter 's text tools are fairly standaid so I 
won't detail them. A featuie that I like is the ability 
to use text size up to 200. Also, in QuickLetter, you 
have more control over setting margins and line 
spacing than in MacWrite. 

QuickLetter allows you to set up standard sta- 
tlonaiy to speed up the letter writing process. Such 
stationary already contains standaid graphics 
features (e.g., letter heads borders and /or logos) 
margin and tab settings, and text specifications. 
One such stationary design may be designated as 
the default stationary and will automatically ap- 
pear when you start QuickLetter. 

You may import graphics for use as a logo or 
letterhead. Whatever you import is automatically 
placed in the upper left hand comer of the page and 
cannot be moved. This lack of flexibility is a 
significant weakness in QuickLetter. Consider- 
able trial and eiror may be necessary to design the 
graphic so that when pasted into QuickLetter, it is 
corrected positioned. 

QuickLetter contains a handy address book for 
in putting addresses to your letter or envelope. 
This feature also can be used to print labels. You 
may search the address book for key words such as 
a part of a name. 

The print preview feature for QuickLetter is 
especially nice. Not only can you easily preview 
your letter and envelope as they will piint but you 
can move the text around on the page independent 
of the letterhead to visually position it as you like. 

The Bottom Line 

In summary, this is an unexpected nice prod- 
uct. I keep finding useful features that I didn't 
expect to find. If the imported graphics could be 
more easily located, it would be perfect. But that 
weakness can be worked around and so, on the 
balance, QuickLetter's strengths outweigh its 
weaknesses and is recommended. 

EOF 



fq® mam wm^ 




68 MICRO 
JOURNAL 1 ' 



I 



68 Micro Journal 



April '89 



29 



Telephone: ($ 1 5} 842-4600 SOU tft TtClS t 9^6 dlU 



OS-9, UrdJOEX, TL'LX, S'K'^OS 



Telex: $106006630 
Jtue (615) 842-7990 



ASSEMBLERS 

ASTRUK09 from S.E. Media •• A "Structured Assembler for the 6809" 
which requires the TSC Macro Assembler. 
FLEX. SK DOS. CCF • $99.95 
Macro Assembler for TSC - Ihe FLF.X. SK DOS STANDARD Assembler. 

Special -- CCF $3500; FLEX. SKDOS $50.00 
OSM Extended 6809 Macro Assembler from Uoyd I/O. -- Provides local 
labels, Motorola S-records. and Intel ilex records: XREF Generate 
OS-9 Memoiy modules under FLEX, SK DOS. 
FLEX. SK.DOS, CCF. OS-9 $99.00 
Relocating Assembler/Linking Loader from TSC. -- Use with many of the 
C and Pascal Compilers. 

FLEX . SKDOS, CCF SI 50.00 
MACE, by Graham Trott from Windrush Micro Systems ■■ Co-Resident 
Editor and Assembler; Cast interactive A.I- Programming for small to 
medium-sized Programs. 

FLEX. SKDOS, CCF . $7500 
XMACE MACE w/Cross Assembler for 6800/1/2/3/8 
FLEX. SK DOS. CCF ■ $98.00 

DISASSEMBLERS 

SUPER SLEI..TH from Computer Systems Consultants Interactive 
Disassembler: exiremely POWERFUL! Disk File Binary/ASCII 
Examine/Change, Absolute or FULL Disassembly. XRliF Generator, 
label "Name Changer", and Files of "Standard Label Names" for 
different Operating Systems. 
Color Computer SS-50 Bus (all wt AL Source) 
CCO (32 K Req'd) Object Only $49 00 

FLEX. SK DOS $99.00 - CCF Object Only $50.00 UntFLEX $100 00 
CCF. »ilh Source $99.00 OS-9. $10100 ■ CCO. Object Only $50.00 
68010 SUPER SLEUTH . Similar to 8- Bit Version except written 
in "C". 

68010 Disassembler $100.00 FLEX. UntFLEX. UNIX, XENIX, 
MS DOS, SK DOS. OS-9 

OS-9/68K Object Only $100.00 or mth Source $20000 
DYNAMITE* -• Excellent standard "Hatch Mode" Disassembler. Includes 
XREF Generator and "Standard Label" Files. Special OS-9 options 
with OS 9 Version. 

CCF. Object Only $100.00 ■ CCO, Object OnlyS 59.95 

FLEX, SKDOS . Object Only $100.00 - OS-9. Object Only$l50O0 

UniFLEX Object Only $300.00 

CROSS ASSEMBLERS 

CROSS ASSEMBLERS from Computer System Consultants -- Supports 
1 802/5. Z-80, 6800/1/2/3/8/1 1/HCI 1 , 6804, 6805/HC05/ 146805. 6809/ 
00/01. 6502 family, 8080/5. 802O/1/2/35/C35/39/ 40/48/C48/49/C49/50/ 
8748/49. 8031/51/875132000 and 6BO0O/680I0 Systems. Assembler 
and Listing formats same as target CPU's format. Produces machine 
independent Motorola S Text. Includes Macro Preprocessor. Written in 
C'- 68000 or 6809 'Macintosh' Atari. FLEX. CCF. UntFLEX. OS-9, 
XENIX, UNIX. MS DOS. SK DOS 

any object $50 or any 3Jor $100 
any source is an additional $50 or any 3 for $100 
Set of ALL object $200.00 - wtlh source $50000 
XASM Cross Assemblers for FLEX, SKDOS from S.E. MEDIA - liiis sei 
of 6800/1/2/3/5/8. 6301, 6502, 8080/5. and 280 Cross Assemblers uses 
the familiar TSC Macro Assembler Command Line and Source Code 
fonnal. Assembler options, etc., in providing code for target CPU's. 
Complete set, FLEX. SK.DOS only - $150.00 



CRASM1I from LLOYD I/O - Supports Motorola's. Intel's. Zilogs, and 
other's CPU syntax for ihese 8-Bit microprocessors: 6800. 6801, 6303, 
6804.6805,6809.6811 (all varieties): 6502, 1802/5, 8048 family, 8051 
family. 8080/85. Z8, Z80.and TMS-7000 family, lias MACROS, 
Local Labels, Label XREF, Label Length to 30 Chars. Object code 
formats: Motorola S Records (text), Intel HEX Records (text), OS-9 
(binary), and FLEX, SK-DOS (binary) Written in Assembler ... e.g. 
Vcrv Fist. 

CPU TYPE - Price each: 

For. MOTOROLA INTEL 

FLEX9 $150 

SKDOS $150 

OS 9/6809 $150 

OS9/68K 

CRASMII 1632 from IXOYD I/O 



$150 
$150 
$150 



OTHER COMPLETE SET 
SI 50 S399 

SI 50 $399 

$150 $399 

$432 
Supports Motorola's 68000, and has 
same features as the 8 bit version. OS9/68K Object code Fonnat allows 
this cross assembler to be used in developing your programs for 
OS-9/68K on y«ur OS-9/6809 computer. 

FLEX. SKDOS. CCF. OS 916809 $24900 

COM MU NIC A TIONS 

CMOUEM Telecommunications Program from Computer Systems 

Consultants, Inc. -- Maiu-Dr ven: supports Dumb-Tcnninal Mode, 
Upload and Download in non-protocol mode, and the CP/M "Modem?" 
Chrisiensen protocol mode to enable communication capabilities for 
almost any requirement Wntlcn in "C" 

HEX. SK DOS. CCF. OS 9. UniFLEX. UNIX. XENIX. MS-DOS. 
with Source $100 00 - without Source $5000 
X-TALK from S.ii. Media - X-TALK consists of two disks and a special 
cable, the hookup enables a 6809 SWTPC computer to dump UniFLEX 
files directly to the UniFLEX MUSTANG 020. this is the ONLY 
currently available method to transfer SWTPC 6809 UniFLEX files to a 
68000 UniFLEX system. Gimix 6809 useis may dump a 6809 
UniFLEX file to a 6809 UniFLEX live inch disk and it is readable by 
the MUSTANG-030. The cable is specially prepared with internal 
connections to match the non-standard SWITC SO/9 J/O Db25 
connectors. A special SWTPC S+ cable set is also available. Users 
should specify which SWTPC system he/she wishes to communicate 
with the MUSTANG 020. The X-TALK software is furnished on two 
disks. One eight inch disk contains S.E. Media modem program C- 
MODEM (6809) and the oilier disk is a MUSTANG 020 five inch disk 
with C-MODEM (68020). Text and binary files may be directly 
iransfened between the two systems. The C-MODEM programs are 
unaltered and perform as excellent modem programs also. X-TALK 
can be purchased with or without the special cables, but this special 
price is available to registered MUSTANG 020 users only. 

X-TALK Complete (cable, 2 disks) $99.95 

X-TALK Software (2 disks only) $69.95 

X TALK with CMODFM Source $14995 
XD ATA from SE Media A COMMUNICATION Package for ihc 

UniFLEX Operating System. Use with CP/M, Main Frames, other 
UniFLEX Systems, etc. Verifies Transmission using checksum or 
CRC; Re-Transmits bad blocks, etc, 

UntFLEX- $29999 



A»»ltaWllly Ltiendi 
O.OS-J, S.SK«DOS 

r.FLEX.u.unirux 

CCO ■ Color Compute OS-» 
CO . Colo. Conpwltr KIXX 




South TCast 'Media 

S900 Cassandra Smith 1(J. - "HvQon., Ttt, 3 7543 




** Shipping •• 

AM 1* ILS.A. (mln.SlM) 
Fortlpi Su/Tve A44 S» 
J'ortlpi Almll Add !•*» 
OrC.O.D.ShlPBlatOnl; 



'OS.»lllTridrni.r»orMkri»CTM»i»i)»>^»«»<»-'»- , LtX«^dU«IFUO(irtTr«a^lurlll<ltTKlinlc»l SjUfmiCnniultmU-'SK' DOS bmTmtmnrH oTSUt-K S«rft»»r» SjIM—Cwt. 

jq April '89 68 Micro Journal 



'fefcfihoiic: (615) 842-4600 



South "East Media 

OS -9, ilni'J L'LX, 'JL'LX.S'K'-DOS 



'fa*: (615) $42-7990 



PROGRAMMING LANGUAGES 

PL/9 from Windrush Micro Systems - By Gnhim Tru4i. A combuiauon 
Editor Compiler Debugger. Direct source -lo-objcct compilation 
delivering fail, compact, re-entrant. ROM-able. PIC. 8 & 16-bil 
(niegers & 6-digii Real numbers for all real-world problems. Direct 
control over ALL System resources, including interrupts. 
Comprehensive library support: simple Machine Code interface: step- 
by-step tracer for instant debugging. 500+ page Manual with tutorial 
guide. 

FLEX. SKDOS. CCF - J/94.00 

PASC from S.E. Media - A FLEX9. SKDOS Compiler with a definite 

Pascal "flavor". Anyone with a bit of Pascal experience should be able 
to begin using PASC to good effect in short order. The PASC package 
comes complete with three sample progiams: ED (a syntax or structure 
editor), EDITOR (a simple, public domain, screen editor) and CHESS 
(a simple chess program). The PASC package comes complete with 
sourer (written in PASC) and documentation. 
FLEX. SKDOS 195 00 

WHIMSICAL from S.E. MEDIA Now supports Real Numbers. "Structured 
Progtamming" WITHOUT losing the Speed and Control of Assembly 
Language! Single-pass Compiler features unified, user-defined I/O; 
produces ROMable Code; PtvccAi res and Modules (including pre- 
compiled Modules); many "Types" up to 32 bit Integers, 6- digit Real 
Numbers, unlimited sized Arrays (vectors only); Interrupt handling; 
long Var able Names; Variable Initialization; Include directive; 
Condiiiorui I compiling: direct Code insertion; aonuol of the Stack 
Pointer; etc Run-Time subroutines inserted as called during 
compilation. Normally products 10% less code than PU9 
FLEX. SK DOS and CCF J/95 00 

KANSAS CITY BASIC from S.E- Media - Basic for Color Computer OS9 
with many new commands and sub. functions added. A full 
implementation of Ihe It''-T!iliN-iiLSI: logic is included, allowing 
nesting to 2SS levels Sitings are supported and a subset of the usual 
suing funcuons such as LEFTS, RIG 1 1 TV MIIK. STRINGS, etc. arc 
included. Variables are dynamical) y allocated. Also included arc 
additional features such as Peek and Poke A must for any Color 
Computer user running OS-9. 
CoCo OS-9 139 95 

C Compiler from Wlndrush Micro Systems by James McCosh. Full C for 
FLEX. SKDOS except bil-f elds, including an Assembler. Requires 
Ike TSC Relocating Assembler if user desires to implement his owl 
Libraries. 

FLEX. SKDOS. CCF - J295.00 

C Compiler from Introl - Full C except Doublet and Bit Fields, 

streamlined for the 6809. Reliable Compiler: FAST, efficient Code. 
More UNIX Compatible than most. 

FLEX. SKDOS. CCF. OS-9 (Level II ONLY). UniFLEX - 1575.00 

PASCAL Compiler from Lucldata -• ISO Based P Code Compiler. 

Designed especially for Microcomputer Systems. Allows linkage to 
Assembler Code for maximum flexibility. 
FLEX. SKDOS and CCF -1190.00 

OmegaSoR PASCAL from Certified Software - Extended Pascal for 
systems and real-time programming. 

Native 680QtV58<Efl Compiler, $575 for base package, options available. 
For OS-9/68000 and PDOS host system. 

6809 Cross Compiler (OS-9/68000 host) $700 for complete package. 



KBASIC - from S.E. MEDIA - A "Native Code' BASIC Compiler which is 
now Fully TSC XBASIC compatible. Ihe compiler compiles to 
Assembly Language Source Code. A NEW, streamlined. Assembler is 
now included allowing the assembly of LARGE Compiled K-BASIC 
Programs. Conditional assembly reduces Run-lime package. 
FLEX. SK DOS. CCF. OS-9 Compiler /Assembler $99 00 

CRUNCH COBOL from S.E. MEDIA - Supports large subset of ANS11 
Level 1 COBOL with many of the useful level 2 features. Full FLEX. 
SK DOS File Structures, including Random Files and the ability to 
process Keyed Filet. Segment and link large programs at runtime, or 
implemented as a set of overlays. The System icquires S6K and CAN 
be run with a single Disk System. A very popular product. 
FLEX. SKDOS, CCF . 199 9S 

FORTH from Stearns Electronics -- A CoCo FORTH Programming 
Language. Tailored to the CoCot Supplied on Tape, transferable to 
disk. Written in FAST ML. Many CoCo functions (Graphics, Sound. 
etc.). Includes an Editor, Trace, etc. Provides CPU Cany Flag 
accessibility. Fast Task Multiplexing, Clean Interrupt Handling, etc. for 
the "Pro". Excellent "Learning" tcoll 
Color Computer ONLY ■ 158 95 

FORTHBUILDER it a stand-alone target compiler (crosscompiler) for 
producing custom Foith systems and application progiams. 
All of the 83-standard defining words and control structures are 
recognized by FORTHBUILDER. 

FORTHBUILDER is designed to behave as much as possible like a 
resident Foith interpieter/compiler. to thai most of the established 
techniques for wiiting Foith «odc can be used without change. 
Like compilers far other languages. FORTHBUILDER can operate in 
"batch mode". 

Ihe compiler recognizes and emulates target names defined by 
CONSTANT or VARIABLE and it readily extended with "compile- 
umc" definitions to emulate specific target words. 
FORTMBUILDKR is supplied as an executable command file 
configured for a specific host system and target processor. Object 
code produced from the accompanying model source code u royally- 
free to Ikcntcd users. 

FLEX. CCF. SKDOS - J99 95 

EDITORS & WORD PROCESSING 

JUST from S.E. Media — Text Formatter developed by Ron Anderson; for 
Dot Manix Printers, provides many unique features. Output 
"Formatted" Text to the Display. Use the FPRINT.CMD supplied for 
producing multiple copies of the "Formatted" Text on the Printer 
INCLUDING IMBEDDED PRINTER COMMANDS (very useful at 
other times also, and woilh Ihe price of the program by itsell). "User 
Configurable" for adapting to other Piintcrs (comes set up for Epson 
MX-80 with Graflrax); up to ten (10) imbedded "Printer Control 
Commands". Compensates for a "Double Width" piinted line. Includes 
the normal line width, margin, indent, paragraph, space, vertical skip 
lines, page length, page numbciing. centering, fill, justification, etc. 
Use with PAT or any oilier editor. 

* Now supplied as a two disk set 

Disk*! JUS12CMD object file. 

WS17.1TTPL9 source FIEX. SK DOS . CCF 

Disk 02: JUSTSC object and source in C. 

FLEX, SKDOS, OS 9. CCF 

The JTSCand regular JUST C source arc two separate piognms. JTSC 
compiles to a version that expects TSC Word Processor type 
commands, (pp sp ce etc ) Great for your older text files. TheC 



0.04-*,S.SK*00£ 
F.n-EX. U. ttairLEX 
CO • Cote. Cunantir OS.* 

CCF . Color CooiooUr FUI 




South 'East 'Media 

5900 Cassandra Smith %d. - Xi*f<m, Tn. 37343 



rtv>.iVrr,ircl 




•• Shipping •• 

A<M 1* USA. (aria. 115a) 
tw^aa WTMAMn 

FVvtIcp Alm.ll AM 1*» 
Or C-O.D. S birr- Ina Ool, 



•OS.»U» Tr.««~r> 1 if Mkro^rtMo Mntorcla.'FLEX ■!>< UalPl-g»ar«Tr«4«iii«f>jof T«cb»tc»l Sj««i«C<mniln»l».*Slf POS tufroomumof 81«rHSWr-»rt Sfiu—C^y. 



68 Micro Journal 



Apr. 89 



31 



Tefepfiorte: (615) 842-4600 SOU tfl 'EOS t 94e did 



OS-9, Vni'/L'EJC, JL'LX, $%'<D0$ 



Telex: HlOiiOlbnM) 
7&KI (615) 842*7990 



source compiles to * standard syntax JUST.CMD object Tile. Using 
JUST tynuu (.p ,u ,y etc.) Wjih all JUST funcuons plus several 
additional printer formatting (unctions. Reference the JUSTSC C 
source. For Ihose wanting an excellent BUDGET PRICED word 
processor, with features none of (he olhers have. This is ilt 

Disk (I) ■ PL9 FLEX only- FLEX. SK DOS & CCF - S49 95 
Disk Set (2) . FLEX. SK DOS A CCF &. OS-9 (C version) - 169 95 

OS-9 68K0O0 complete with Source - V9 95 
PAT from S.E. Madia - A full feature screen oriented TEXT EDITOR with 
all the. best of "PIE™". For those who swore by and loved only PIE. 
this is for youl All PIE features and much morel Too many features to 
list. And if you don't like these, change or add your own. PL-9 source 
furnished. "C" source available soon. Easily configured to your CRT, 
with special config section. 

Regular FLEX, SK DOS $ 12950 

• SPECIAL INIRODUCTION OFFER • S79.95 

SPECIAL PATIJUST COMBO (with source) 
FLEX. SK DOS S99.95 

OS-9 68K Version S229J0O 

SPECIAL PAT/JUST COMBO 68K S249J0O 
Note: JUST in "C" source available for OS-9 
CEDRIC from S.E. Media ■ A screen oriented TEXT EDITOR with 

availability of 'MENU' aid. Macro definitions, configurable 'permanent 
definable MACROS' - all standard features and the fastest global' 
functions in the west A simple, automatic terminal config program 
makes this a real 'no hasscl* product. Only 6K in size, leaving the 
average system over 165 sectors for text buffer - appx. 14,000 plus of 
free memory I Extra fine for programming as well as text. 

FLEX, SKDOS S69 95 
BAS-EDIT from S.E. Media - A TSC BASIC or XBASIC screen editor. 
Appended to BASIC or XBASIC. BAS-EDIT is transparent to normal 
BASIC/XBASIC operation. Allows editing while in BAS1C/XBASIC. 
Supports the following functions: OVERLAY. INSERT and DUP 
LINE. Make editing BASIC/XBASIC programs SIMPLE1 A GREAT 
lime and effort saver. Programmers love it! NO more retyping enure 
lines, etc Complete with over 25 different CRT terminal configuration 
overlays. 

FLEX.CCF.SK DOS 139.95 
SCREDTTOR III from Wmdrush Micro Systems •• Poweiful Scieen- 

Oriented Editor/Word Processor. Almost SO different commands; over 
300 pages of Documentation wilh Tutorial. Features Multi-Column 
display and editing, "dednul align" columns (AND add them up 
automatically), multiple keystroke macros, even/odd page headen and 
footer), imbedded piinter aontiol codes, all justifications, "help" 
support, iiore common command series on disk, etc Use supplied "set- 
ups", or remap the keyboard to your needs. Except for proportional 
pliming. this package will DO IT ALLI 
6800 or 6809 FLEX, SKDOS or SSB-DOS. OS 9 . S175JOO 
SPELLB "Computer Dictionary" from S.E. Media -- OVER 150,000 words! 
Look up a word from within your Editor or Word Processor (with the 
SPHCMD Utility which operates in the FLEX. SKDOS UCS) Or 
check and update the Text after enliy; ADD WORDS to the Dictionaiy, 
"Hag" questionable words in the Text, "View a word in context" before 
changing or ignoring, etc. SPEUJ) lint cheeks a "Common Wad 
Dictionary", ihen the normal Dictionary, then a "Personal Woid List", 
and finally, any "Special Woid List" you may have specified. SPELLB 
also allows the use of Small Disk Storage systems. 

FLEX. SKDOS and CCF ■ SI29.95 



STYLO-GRAPH from Great Plains Computer Co. •- A fulll-screen oriented 
WORD PROCESSOR - (uses the 51 x 24 Display Screen* on CoCo 
FLFJC/SK-DOS. or PBJ Wordpak). Full screen display and editing; 
supports the Daisy Wheel proportional printers. 
NEW PRICES 6809 CCF and CCO ■ S99 95, 
FLEX. SKDOS or OS 9 SI79 95. UniFLEX. S299 95 
STYLO-SPELL Iran Great Plains Computer Co. - Fast Computer 
Dictionary. Complements Stylograph. 

NEW PRICES 6809 CCF and CCO - 169 95. 
FLEX. SKDOS or OS-9 - S99.95. UniFLEX- S149 95 
STYLO. MERGE from Great Plains Computer Co. - Meige Mailing list to 
"Form" Letters, Print multiple Files, etc., through Stylo. 
NEW PRICES 6809 CCF and CCO . S59 95. 
FLEX. SKDOS or OS-9 . 179 95, UniFLEX. SI29 95 
STYLO PA K -Graph + Spell ♦ Merge Package Deal III 

FLEX, SK DOS or OS-9 . S329.95. UniFLEX - S549 95 
OS-9 68000 S695 00 

DATABASE ACCOUNTING 

XDMS from Westchester Applied Business Systems 

FOR 6809 FLEX or SKDOS (5/8") 

Up to 32 groups/fields per record! Up to 12 character file names) Up to 1024 
byte records! User defined screen and print control! Process files! Form 
filesl Conditional execution) Process chaining! Upward/Down waid file 
Unkingl File Joining! Random Tile virtual paging) Built in utilities! Built 
in text line editor! Fully session ortcnladl Enhanced forms! Boldface, 
Double width, Italics and Underline supported I Written in compact 
structured assembler! Integrated for FAST execution 1 
XDMS-IV Data Management System 

XDMS-I V is a brand new approach to data management It not only permits 
users to describe, enter and retrieve data, but also to process entire Tiles 
producing customized reports, screen displays and file output. 
Processing can consist of any of a set of standard high level functions 
including record and field selection, sorting and aggregauon, lookups in 
other files, special processing of record subsets, custom report 
formatting, totaling and subtouling, and pnscntaUon of up to three 
related Tiles as a "database" on user defined output reports. 
POWERFUL COMMANDS! 

XDMS-IV combines ihe functionality of many popular DBMS software 
systems with a new easy to use command set into a single integrated 
package. We've includad many new features and commands including a 
set of general file utilities. The processing commands are Input-Proccss- 
Outpuf (IPO) which allows almost instant implementation of a process 
design. 

SESSION ORIENTED! 
XDMS-IV is session oriented. Enter "XDMS" and you are in instant 

command of all the feaiuies. No more waiting for a command to load m 
from disk! Many commands are immediate, such as CREATE (file 
definition). UPDATE (file editor), PURGE and DELETE (utilities). 
Olhers are process commands which are used to create a user process 
which is executed with a RUN command. Either may be entered into a 
"process" file which is executed by an EXECUTE statement Processes 
may execute other processes, or ihem selves, cither conditionally or 
unconditionally. Menus and screen prompts arc easily coded, and entire 
user applications can be run without ever leaving XDMS. IV 



O • CHS-*, s . SK'DOS 

r,nrt,u. uatnu 
nra , a*» t as s tft s a v os.« 

ccf . m. i, w ii> rucx 




South 'Lost Media 

5900 Cassandra. Smith KjC ■ 9fc(fon. Tn. 37343 




" Shipping •• 

am i* UiA. (jala. U.M) 
Pamaa Jaro» AM i% 
tmntmt Alraa IIU1 1«» 
Or COJJ. SAVrta, Oar> 



*l)S-*lii \ rtfamtth r>r Mkr.r*trt tnd M„t,f..u 'Kl IA ind l.nlM.EX iff I rtetmtr hiot Tnhnkal SynnniCwnuluml*.*SK* DOS !■ m Trademark oT sue .K Salt^irt SymnM tjra. 



32 



April '09 



68 Mcro Journal 



Tefcpfione: (6 1 5) $424600 SOU tfl 'EtlS t (Media 



OS-9, ihu'.fL'LX, fC'EX, S'K'DOS 



Ti-tcx: SlObOObt&O 
fa*: fa 15) 842*1 



ITS EASY TO USE! 

XDMSIV keeps data management simple! Rather than design i complex 
DBMS whidi hidei the Uue nuure of the data, we kepi XDMSIV Hie 
oriented. The user view of dais relationship! is presented in reports and 
screen output, while ihe actual data resides in easy 10 maintain dies. 
This aspect pcmuis customitcd presentation and reports without 
complex redefinition of the database files and structure. XDMS-IV may 
be used for a wide range of applications from simple record 
management systems (addresses, inventory ...) to iniegiaied database 
systems (order entiy, accounting...) 

The possibilities ire unlimited... 

FOR 6809 FLEX or SK-DOS(5"/8" Disk) (249.95 

UTILITIES 

Bajlc09 XRef from S.E. Media •• This Basic09 Cross Reference Utility is a 
Basic09 Program which will produce a "pretty primed" listing with each 
line numbered, followed by a complete cross referenced listing of all 
variables, externa] procedures, and line numbers called. Also includes a 
Program List Utility which outputs a fast "pretty printed" lining with 
line numbers. Requites 8asic09 or RunB. 

OS-9 A CCO objtel only - S39.9S; with Source - $79.95 

BTrtt Routines • Complete set of routines to allow simple implementation 
of keyed files -for your programs - running under Basie09. A real time 
saver and should be a part of every serious programmers tool-box. 
OS-9 A CCO objtel only ■ SS9 9S 

Lucldata PASCAL UTILITIES (Requires Pascal ver 3) 

XREF ■• produce a Cross Reference Listing of any text: oiiented to Pascal 
Source 

INCLUDE -- Include other Files in a Source Text, including Binaiy - 
unlimited nesting. 

PROFILER - provides an Indented, Numbered, "Structogram" of a Pascal 
Source Teal File; view the overall structure of large piogiams, program 
inlcgniy. etc Supplied in Pascal Source Code: iccjuirei compil atton. 
FLEX. SKOOS. CCF — EACH 5~ ■ UOW, «" - S50M 

DUB from S.E. Media - A UniFLEX BASIC decompiler Re-Creale a 
Source Listing from UniFLEX Compiled basic Prog/vns. Woiks with 
ALL Versions of 6809 UniFLEX basic. 
UniFLEX ■ J2I9.95 

LOW COST PROGRAM KITS from Southeast Media The following kits 
are available for FLEX. SKDOS on ether J' or 8" Disk. 

1. BASIC TOOL-CHEST $29.95 
BUSTER. CM D: pretty priner 
LINEXREF.BAS: line crots-refercnccr 
REMPAC.BAS, SPCPAC.BAS. COMPACBAS: 
remove supcriluous code 

STRIP. BAS: superfluous line-numbers mipper 

2. FLEX, SKDOS UTILITIES KIT $39.99 

CATS. CMD: alphabetical! y -sorted directory listing 

CATD-CMD: date-sorusd directory listing 

C0PYSORT.CMD: file copy, alphabetically 

COPYDATE.CMD: file copy, by dale-order 

FILEDATE CMD: change file creation date 

INFO.CMD (4 fNFOGMX.CMD): tells disk attributes A. contents 

RELINK CMD {& RELINK82): reorders fragmented free chain 

RESQ.CMD: undelete* (recovers) a deleted file 

SECIORS.CMD: show sector order in free chain 

XLCMD: super text lister 



3. ASSEMBLERS/DISASSEMBLERS UTILITIES S39.9S 

LINEFEED.CMD: modularise' disassembler output 
MATH CMD: decimal, hex, binary, octal conversions 
A tablet 
SKIP.CMD: column stripper 

4. WORD - PROCESSOR SUPPORT UTILITIES $49.95 
FULLSTOP.CMD-. chucks for capitalization 
BSTYdTBAS (.B AC- Stylo to dot matrix printer 
NECPRINT.CMD: Stylo to dot-matrix primer filler code 

5. UTILITIES FOR INDEXING $49.95 
MENU.BAS: selects nquintd program from list below 
INDEX BAC: word index 

PHRASES BAC; phrase index 

CONTENT.B AC table of contents 

INDXSORT.BAC: fast alphabetic son routine 

FORMATER.BAC: produces a 2-coiumn formatted index 

APPEND.BAC: append any number of files 

CHAR BIN: line reader 
BASIC09 TOOLS consist of 21 subroutines for Basic09. 
6 were written in C language and the remainder in assembly. 
All the main cs arc compiled down to native machine code which 
makes them fast and compact. 

1. CF1LL - fills a string with characters 

2. DPEEK - Double peek 

3. DPOKE - Double poke 

4. FTOS - Current file position 
J, FS1ZE - File sue 

6. FTRIM -- removes leading spaces from a string 

7. GETPR -- returns the current process ID 
8 GETOPT - gels 32 byte option section 
9. GETUSR - gets the user ID 

la GTIME - gets the tune 

11. INSERT - insert a suing into another 

12. LOWER -- converts a string into lowercase 

13. READY -- Checks for available input 

14. SETPRIOR - changes a process priority 

15. SETUSR - changes the user ID 

16. SETOPr •- set 32 byte option packet 

17. STIME - sets the time 

18. SPACE -- adds spaces to a string 

19. SWAP — swaps any two variables 

20. SYSCALL - system call 

21. UPPER - converts a string to uppercase 

For OS-9 - $44.95 • Includes Source Code 

SOFTOOLS 

The following programs are included in object foun for trrunedi ate 

application. PL/9 source code available for custom zalion . 

READ-ME Complete instructions for initial set-up and operation. Can even 

be printed out with the included text processor. 
CONFIG one time system configuration. 

CHANGE changes words, characters, etc. globally to any text type file. 
CLEANTXT converts text filet to standard FLEX, SK-DOS Tiles. 
COMMON compare two text files and reports differences. 
COMPARE another check file that reports mis-matched lines. 
CONCAT similar to FLEX. SKOOS append but can also list filet to screen. 
DOCUMENT for PL/9 source files. Very useful in examining parameter 

passing aspects of procedures. 



A.I 

■ OS-t, I ■ SK-DOS 

r.FLtX.U.UalFLM 

cca . Goto* ca»p«itr o&-f 

CTF - Cofc* ConpuUT TXXX 




South "East 'Media 

S9Q0 Cassandi-aSmitk Hf. ■ 9&rftm, Tn. J7i4i 




L^ 



•• Sblppln* •• 

A44 1% u&A. (ai& tut) 
Fantaa JvrCn KU I* 
fW<Sa> Air— tH A** If* 
OrC.O-D.SlM»f*>aO«rj 



*p«-f t»« TT»*mMrt »f Mttrenww ma Matjrala.'ST.rtK mn* Unlin.EX in Tr»4fm»rtn «f Technical Sjujim Gnunlmiu-'SK*D08 hi i 



■fc af Star-K IcrtTt 1 jsstsas Cfp. 



66 Mrcro Journal 



April '89 



33 



'fctcpinmc: (6 I 5> 842-4600 SOU tft T,OS t fMcdid 



OS-9, Uni'JCLX, 'JLLX, S'K'^OS 



•I\'tf.\: 5106006630 
tFwc (615) 842-7990 



ECHO echo* lo other scran or file. 

FIND an unproved find command with 'pattern" matching and wildcaids. 
Veiy useful. 

HEX dumps files in both hex and ASCII, 

INCLU'OEi file copy program thai will accept "includes" of other disk files. 

K WIC allows rousing each word, on each line to ilie beginning. Very useful 
in a sort program, etc. 

LISTDIR a directory listing program. Not super, but better than CAT. 

MEMSORT a high-speed text file softer. Up lo 10 fields may be sorted. 
Veiy fast. Very useful. 

MU LTICOL width of page, number of columns may be specified. A 
MUST! 

PAGE similar lo UST but allows for a page header, page width and depth. 
Adjust for CRT screen or printer as set up by CONFIG. A very smart 
piinl driver. Allows printer control commands. 

REMOVE a fast file deleter. Careful, no prompts issued. Zap, and its gone! 

SCREEN a screen listing utility. Word wraps text lo fil screen. Screen depth 
may be altered al run time. 

SORT a super version of MEMSORT. Ascending/descending order, up to 10 
keys, case over-ride, son on n" word and sort on characters if file is 
small enough, sons in RAM. If large file, son is constrained to size of 
your largest disk capacity. 

TPROC a small Nil ruvc tat formatter. Ilus i» a complete formatter and has 
functions not found in other formatters. 

TRANSLIT sons a file by x keyfiields. Check! for duplications. Up to 10 
key files may be used. 

UNROTATE used with KWIC this program reads an input file and unfolds 
il a line al a lime. If ihe Tile has been soiled each word will be 
presented in tequoMC 

WC a word count utility. Can count words, characters or lines. 

NOTE: this set of utilities consists of 6 5-1/4" dbfcs or 2 8" disks, with 
source (PL9). 3 S- 1/4" disks or I 8" disk without source. 
Complete set SPECIAL INTRO PRICE: 
5-1/4" with source FLEX or SK-DOS - S129 95 
without source • $79.95 
8" with source • $79.95 • without source $49.95 

FULLSCREEN FORMS DISPLAY from Computer Systems Consultants 
- TSC Extended BASIC program suppons any Serial Terminal with 
Cursor Control or Memory-Mapped Video Displays; substantially 
extends Ihe capabilities of the Program Designer by providing a table- 
driven method of describing and using Full Screen Displays. 
FLEX. SK DOS and CCF. UniFLEX . S2HD0. with Source - $5000 

SOLVE from S.E. Media - OS-9 Levels I and II only. A Symbolic Object/ 
Logic Verification St. Examine debugger. Including inline debugging, 
disassemble and assemble. SOLVE IS THE MOST COMPLETE 
DEBUGGER we have toot for the 6809 OS-9 series! SOLVE does it 
all! With a rich selection of monitor, assembler, disassembler, 
environmental, execution and other miscellaneous commands, SOLVE 
is ihe MOST POWERFUL tool kit item you can own) Yet. SOLVE is 
simple U> use! With complete documentation, a snap! Everyone who 
has ordeied this package has raved 1 Sec review -68 Micro Journal - 
December 1985 No 'blind' debugging here, full screen displays, rich 
and complete in information presented. Since review in 68 Micro 
Journal, this is our fastest mover! 

levels I A II only ■ OS-9 $69.95 



DISK UTILITIES 

OS-9 VDisk from S.E. Media - For Level I only. Use ihe Extended 

Memory capability of your SWTPC or Giinix CPU card (or similar 
format DAT) for FAST Program Compiles, CMD execution, high spead 
inter-process communications (without pipe buffers), etc. - SAVE lhai 
System Memoiy. Virtual Disk size is variable in 4K increments up lo 
960K. Some Assembly Required. 

Level I OS-9 object $79 95. with Source $149 95 

O-F from S.E. Media ■• Written in BASIC09 (with Source), includes: 

REFORMAT, a BASIC09 Program that reformats a chosen amount of 
an OS-9 disk to FLEX, SK-DOS Formal so it can be used normally by 
FLEX. SK.DOS: and FLEX, a BASIC09 Program that does the actual 
read or write function to the special O-F Transfer Disk: user-friendly 
menu driven. Read Ihe FLEX. SKDOS Dirccloiy. Delete FLEX, 
SK.DOS Files, Copy both directions, etc. FLEX. SKDOS users use 
the special disk just like any other FLEX. SKDOS disk 
OS-9 - 6909/68000 $79.95 

[.SORT from S.E. Media - A SORT/MERGE package for OS-9 (Uvel I A 
U only). Sons record* with fixed lengths or vaiiable lengths. Allows 
for either ascending or descending son. Soiling can be done in either 
ASCII sequence or alternate collating sequence. Right, lefl or no 
justification of data fields available. LSORT includes a full set of 
comments and errors messages. 
OS-9 $95 DO 

HIER from S.E. Media - HIER is a modern herarcnal storage system for 
users under FLEX. SK-DOS It answers the needs of those who have 
hard disk capabilities on their systems, or many files on one disk - any 
size. Using HIER a regular (any) FLEX, SK.DOS disk (8 . 5 . hard 
disk) can have sub directories By this method the problems of 
assigning unique names to Files is less buidentomc. Different files with 
ihe exact same name may be on the same disk, as long as ihey are in 
different directories. For the Winchester uaerlhis became* a must. Sub 
directories are Ihe modem day solution thai all current taige systems 
use. Each directory looks to FLEX, SK-DOS like a regular file, 
except they have the extension '.DIR'. A full set of directory handling 
programs are included, making the operation of HIER simple and 
straightforward. A special install package is included lo install HIER to 
your particular version of FLEX, SK-DOS. Some assembly required. 
Install indicates each byte or reference change needed. Typically • 6 
byte changes in source (furnished) and one assembly of HIER is all that 
is required. No programming requited! 
FLEX ■ SK DOS $79.95 

COPYMULT from S.E. Media -- Copy LARGE Disks to several smaller 
disks. FLEX, SK-DOS utilities allow the backup of ANY size disk lo 
any SMALLER size diskettes (Hard Disk to floppies, 8" lo 5", etc.) by 
simply inserting diskettes a* requested by COPYMULT. No fooling 
with dirccloiy deletions, etc COPYMULT.CMD understands normal 
"copy" syntax and keeps up with files copied by maintaining directories 
for both host and icceivuig disk syitem. Also includes BACKUP.CMD 
to download any size "random" type file; RESTORE.CMD lo 
restructure copied "landom" files for copying, or recopying back to ihe 
noil system; and FREELDNK.CMD *s a "bonus" utility that "relinks" 
Ihe free chain of floppy or hard disk, eliminating fragmentation. 

Completely documented Assembly Language Source files included. ALL 4 
Program (FLEX. SKDOS. S" or 5') $99.50 



OiOS.I.S .SKTX)S 

r.n.£x,u>ifeiri.EX 

CO • Csk» Conautar 0»-« 
CCf - Color CompuUr FLRX 




South 'East Media 

5900 Cassandra. Smith %£. - tfixjon. In. 37343 



fli.i<tft i rrrj< , 4 



■• Shipping •• 

Add J* VSJk. (nirt. tl W) 
Pari!** Sumw Add S% 
tertian AlniBll Add IS* 
Or C.O.D. Sklrwlm Oolj 



*OS.»lai TradiMrlior Micro— rrmd Mcur*™!* .'Kl.KX arid IrnlKLEX ir< Trsd«marhjqfTghnkBlSjiltmi l^mmlUnu.'^k'IMls Ii I 



ra nt Star. X Saftw r% Sjmtnw f mt ■. 



34 



April '89 



66 Micro Journal 



Tekphom: (615) 842-4600 SOU tfl 'EdS t ^Mcdla 



OS -9, 'Um'JfLX, <J L'EX, S'K''DOS 



Tc(e\: 5W600bbM) 
faTQ {€15) 842-7990 



COPYCAT from Lucid.ta - Pascal NOT required. Allows leading TSC 
Mini-R.EX. SK-DOS. SSB-DOS68, and Digital Research CPfM Disks 
whileoperaling under SK DOS . FLEXI.O. FLEX 2.O. or FLEX 9.0 
wiih 6800 Of 6809 Systems. COPYCAT will not perform miracles, but. 
between the program and the manual, you stand a good chance of 
accomplishing a transfer. Also includes some Utilities to help out. 
Programs supplied in Modular Source Code (Assembly Language) to 
help solve unusual problems. 
FLEX.SKDOS and CCF 5"$50.00 FLEX. SK DOS 8"-$65.00 

VIRTUAL TERMINAL from S.E. Media ■ Allows one terminal to do the 
work of several. The user may stan as many as eight tasks on one 
terminal, under V1RWALTERMINAI. and switch back and foith 
between tasks at will. No need to exit each one: Just jump back and 
fouh. Complete with configuration program. *I"he hest way to keep up 
with those background programs 

6809 OS-9 & CCO . object only - $49.95 

KLEX, SK DOS DISK UTILITIES from Computer Systems Consultants 
Eight (8) different Assembly Language (with Source Code) FLEX. 
SK-DOS Utilities for every FLEX, SK-DOS Users Tootbox: Copy a 
File with CRC Eirors; Test Disk for errors; Compare two Disks; a fast 
Disk Backup Program; Edit Disk Sectors: Linear \w Free-Chain on the 
Disk; pint Disk Idcntilicaiion; and Son and Replace the Disk Dircctoiy 
(in sorted order). — PLUS — Ten XBAS1C Programs including: A 
BASIC Resequenccr with EXTRAS over "RENUM" like check for 
missing label definitions, processes Disk to Disk instead of in Memory, 
etc. Other programs Compare, Merge, or Generate Updates between 
two BASIC Programs, check BASIC Sequence Numbers, compare two 
unsbquenccd files, and S Programs for establishing a Master Dircctoiy 
of several Disks, and sorting, selecting, updating, and printing paginated 
listings of these files. A BASIC Cross-Reference Program, wiiuen in 
Assembly Language, which provides an X-Ref Listing of the Variables 
and Reserved Words in TSC BASIC. XBAS1C, and PRECOMPILER 
BASIC Programs. 

ALL Uliliiitt include Source (either BASIC or A.L. Source Cod*). 
FLEX. SK-DOS and CCF - 15000 
BASIC Utilities ONLY for UniFLEX - $30 00 

MS-DOS lo FLEX Transfer Utilities to OS-9 For68XXX and CCOS-9 
Systems Now READ - WRITE - D1R - DUMP - EXPLORE Fl-EX &. 
MS-DOS Disk. These Utilities come with a rich set of options allowing 
the transfer of text type files from/to FLEX A MS-DOS disks. >CoCo 
systems require the DP. Johnson SDISK utilities and OS-9 and two 
dnves of which one must be a "host" floppy. 

'CoCo Version $69 95 68XXX Version $99 95 

MISCELLANEOUS 

TABULA RASA SPREADSHEET from Computer Systems Consultants 
TABULA RASA is similar lo DESKTOP/PLAN; provides use of 
tabular compulation schemes used for analysis of business, sales, and 
economic conditions. Menu-diiven; extensive report-generation 
capabilities. Requires TSCs Extended BASIC. 
FLEX. SK-DOS and CCF . UniFl£X- $50.00. with Source . $100.00 
DYNACALC - Electronic Spread Sheet for the 6809 and 68000. 
UniFLEX- $395.00. FLEX, SK-DOS. OS-9 and SPECIAL CCF - $250.00 
OS-9 68K -$299.00 



FULL SCREEN INVENTORY/MRP from Computer Systems Consultants 
Use the Full Screen Inventory System/Materials Requirement Planning 
for maintaining inventories. Keeps item field file in alphabetical order 
for easier inquiiy. Locale and/or piint records matching partial or 
complete item, description, vendor, or auribtiies: find backorder or 
below slack levels. Pnnl-ouls in item or vendor order. MRP capability 
for the maintenance and analysis of Hierarchical assemblies of items in 
the inventory file. Requires TSCs Extended" BASIC. 
FLEX.SKDOS and CCF. UniFLEX - $50 00. *ilh Source . $100.00 

FULL SCREEN MAILING LIST from Computer Systems Consultants - 
The Full Screen Mailing Lisi System provides a means of maintaining 
simple mailing lists. Locale all records matching on panial or complete 
name, city, state, zip, or attributes for Listings or Labels, etc. Requires 
TSCs Extended BASIC. 
FLEX. SK DOS and CCF. UniFLEX- $50.00. w,th Source ■ $10000 

DIET-TRAC Forecaster from S.E. Media - An XBASIC program that plans 
a diet in terms of cither calorics and percentage of carbohydrates, 
protcms and fats (C V 0%) or grams of Carbohydrate. Protem and Fat 
food exchanges of each of the six basic food groups (vegetable, bread, 
meal, skim milk, fruii and fat) for a specific individual. Sex, Age. 
Height, Present Weight, Frame Size, Activity Level and Basal 
Metabolic Rale for normal individual are taken into account. Ideal 
weight and sustaining calories for any weight of the above individual 
are calculated. Provides number of days and daily calendar after weight 
goal and calorie plan is determined. 

FLEX.SKDOS $59.95. UniFt£X ■ $89.95 



GAMES 

RAPIER - 6809 Chess Program from S.E. Media - Requires FLEX. 

SK-DOS and Displays on Any Type Terminal. Features: Four levels of 
play. Swap side. Point scoring system. Two display boards. Change 
skill level. Solve Checkmate problems in 1-2-3-4 moves. Make move 
and swap sides. Play while or black. This Is one of the strongest 
CHESS programs running on any microcomputer, estimated USCF 
Rating 1600 + (belter than most club' players at higher levels) 
FLEX. SKDOS and CCF ■ $79.95 
NEW 

MS.DOSIFLEX Transfer Utilities For 68XXX and CoCo* OS-9 Systems. 
Now Read, Write. DIR, Dump and Explore FLEX & MS-DOS Disks. 
Suppled with a rich set of options lo explore and transfer text type Isles 
from/to FLEX and MS DOS disks 'CoCo OS-9 requires SDISK 
utilities & iwo floppy drives. 
CCO $69 95 68XXX OS-9 $99 95 

MS-DOS and Macintosh 

Software at Discounted Prices 

"Call for prices, il"ll be worth the savings." 

(615) 842-4600 



FAX (615)842-7990 



AT>il<Mlli;Ua)ciub 
O.OS-J.S.SK'DOS 
t > FLEX, U • UniFLEX 
QC* • Color CompuUr OS.« 
CCF- Color Compear FLEX 



B 



South 'East Media 

S900 Cassandra Smith J{£. ■ Xvpon, Tn. i 7i4i 




motive arc 1 



•• Shipping •• 

Add 2* US.A. (mlo. SLS*) 
rorrtan Surfoc. Add t% 
Foritan Airmail Add 19% 
Or CO.D. SolpploiOnljr 



■05i-«IJ»Tridtm»rl<<?rMI<romr<irni Mnloml.-'H.HX «nd l.'nlH.HX »rt 1 r»drnurki ot Tmrinkjl Srnjnii 1 jmiulunlj-'S If IKBi li ■ I nJfmirl .Ulii.H Wl»»f f S}ll.mi tjrp. 



68 Mcro Journal 



April 89 



35 



FLEX 6809 DIAGNOSTICS Disk Drive Test 

ROM Test, RAM Test 

INTRODUCTION 



The following ulilites are available on 68 Micro Journal 
Reader Service Disk #34. However, they are being published 
here as well because of the sharing spirit of the author: 

Emery Korpi 
40 Beatrice Ave. 
Syossei, NY, 11791. 

I, and thousands of loyal readers thank you Emery for your 
willingness to shaie your efforts with all of us. It is that type 
of spirit lhat has allowad us to survive. As a contributor 
supported magazine we urge all our readers to do likewise. If 
so, we will be around a long time to come. 
Again, thanks - Emery! 

DMW 



DISC DRIVE TEST (DDT) 
NOTES: 

INTRODUCTION - 

THIS PROGRAM HAS BEEN WRITTENTO AID IN THE ALIGN- 
MENTOF 5 INCH* DISK DRIVES UNDER THE FLEX OP-SYSTEM. 
IT ALLOWS FORTESTINGOF DRIVES O THROUGH 3 WITH THE 
WD179X SERIES OF DISK CONTROLLERS IN ANY OF THE SYS- 
TEM I/O SLOTS. THE PROGRAM MAY BE USED WITH EITHER 
1MHZ OR 2MHZ CLOCKED SYSTEMS AND IS COMPATIBLE 
WITH DC-I TO DC-4 OR FD-2 CONTROLLERS THIS PROGRAM 
HAS THE FOLLOWING TEST CAPABILITIES . 

1. DRIVE READY SIGNAL RESPONSE TIME 

2. HEAD IjOAD DELAY TIME 

3. BUSY SIGNAL RESPONSE TIME 

4. DRIVE ROTATIONAL SPEED TEST 

5. INDEX PULSE WIDTH TEST 

6. TRACKO SWITCH ADJUSTMENT 

7. DRIVE STEP TIME 

8. TEST OF ALL DISK SECTORS 

9. RADIAL ALIGNMENT 
lO.READ/WRiTING/MODIFYING DATA 
ON ANY SECTOR. 



THIS PROGRAM ALSO CAN OPERATE WITH THE DYSAN 
DIGITAL DIAGNOSTIC DISKS IN ORDER TO FIND; 

1. RADIAL TRACK ALIGNMENT ERRORS (IN MILLI-1NCHES) 

2. STEPPER MOrOR ACCURACY AND REPEATABILITY PROB- 
LEMS 

3. REDUCED AMPLITUDE SIGNAL PROBLEMS 

4. AZIMUTHAL HEAD ALIGNMENT ERRORS 

A. STARTING THE PROGRAM - 

THE PROGRAM MAY BESTARTED IN EITHER OFTHREE WAYS. 
THESE ARE; 

1. DDT - THE OPERATOR WILL BE PROMPTED FOR THE DRIVE 
NUMBER (0-3). THE SYSTEM CLOCK SPEED (1 OR 2 MHZ) AND 
THE I/O QLOT THAT THE CONTROLLER IS INSTALLED IN. 

2. DDT,# - THE PROGRAM WILL TEST DRIVE NO '#' AND AS- 
SUMES A 1 MHZ CLOCK RATE AND I/O SLOT ONE. THESE 
DEFAULT VALUES MAY BE CHANGED IN THE SOURCE PRO- 
GRAM WHICH IS SUPPLIED. 

3. DDT,>iile THEPROCRAMWILLBE PROMPTED THE 
SAME AS IN DDT AND A COPYOF ALL TERMINAL DATA WILL 
BE WRI1TEN INTo TEXT FILE file. 

B. TEST OPTIONS - 

THE OPERATOR OF THIS PROGRAM HAS THE OPTION OF 
HALTING AFTER EACH TEST. IF THIS OPTION IS NOT TAKEN, 
THE PROGRAM WILL PROCEED AUTOMATICALLY UNTIL A 
FAILUREOR KEYBOARD ENTRY IS ENCOUNTERED; ATWHICH 
POINT IT WILL HALT. THE PROGRAM WILL THEN GIVE THE 
OPERATOR THE FOLLOWING OPTIONS: 

1. RETRY - ENTERING T WILL CAUSETHE PROGRAM TO RE- 
EXICUTE THE CURRENT TEST 

2. CONTINUE - ENTERING 'T WILLCAUSETHE PROGRAM TO 
CONTINUE TO THE NEXT TEST 

3. EXIT - ENTERING '3»' WILL CAUSE A RETURN TO THE OP- 
SYSTEM 

C. DISK DRIVE TESTING PRINTOUT FORMAT 

I. DRIVE MOTOR STATUS(E0X8) 

A.READY RESPONSE TIME = XXXX.XX MSEC 
B.BUSY RESPONSE TIME = XX USEC 



36 



April 69 



68 Man Journal 



C.HEAD LOAD DELAY TIME = XXXX XX MSEC 

D.WRrrE PROTECT = Y/N 

E INDEX PULSECOUNT = XX S/B GT 2 

THESE TESTS ARE PERFORMED BY READING THE DISK CON- 
TROLLER STATUS WHICH IS FOUND AT MEMORY LOCATION 
E0X8. 

- READY RESPONSE TIME IS THE TIME THAT THE READY 
SIGNAL TAKES TO GO HI. IT IS THE TIME REQUIRED FOR THE 
DRIVE MOTOR TO REACH rrs DESIGNATED SPEED. 

- BUSY RESPONSE TIME IS THE TIME NECESSARY FOR THE 
CONTROLLERTO DIGEST AN INSTRUCTION AND INDICATE IT 
IS BUSY. 

- HEAD LOAD DELAY TIME IS THE TIME ALLOTTED FOR THE 
HEAD TO LOADBEFORE READING OR WRITING CAN PRO- 
CEED. 

- WRITE PROTECr INDICATES IF THE DISK IS WRITE PRO- 
TECTED. 

- INDEX PULSE COUNT COUNTS THE NUMBER OF INDEX 
PULSES WHICH OCCUR IN THE ALLOTrED TIME SPAN. FAIL- 
URE INDICATES NO DISK IN DRIVE. MOTOR FAILURE OR 
CLUTCH FAILURE. 



II. DRIVE SPEED TEST 
PERIOD = XXXX.XX MSEC S/B 200 +/- 



MSEC 



OBTAINED WITH A PHYSICAL SWITCHPOINT MIDWAY BE- 
TWEEN TRACKS AND 1. 

V. STEP RATE TEST 
TRACK STEP TIME = XXXX MSEC S/B LT 40 MSEC 

THIS TEST FINDS THE DRIVE STEP TIME. THIS IS THE 
SMALLEST TIME NECESSARY FOR THE DRIVE TO STEP FROM 
ONE TRACK TO THE NEXT. 

THIS TEST IS PERFORMEDB Y STEPPINGBETWEENTRACKS 
32AND0ATDIFFERENTRATES. THERATEISCONSIDEREDTO 
BESUCCESSFULIFTHETRACKOSWITCHHASBEENSEr. THE 
STEP RATE IS FOUND BY A NINE1"H ORDER BINARY SEARCH 
AS FOLLOWS: 

TIME:=DELTA:=20.48MSEC 
FORI = I THRU 9 
DELTA := DELTA/2 
IF SUCCESSFUL THEN 

TIME :=TIME- DELTA 
ELSE 

TIME := TIME + DELTA 
END IF 
END FOR 
THIS TECHNIQUE YIELDS A MEASUREMENT RANGEOF0TO4 1 
MSEC WITH AN ACCURACY OF 0.08 MSEC. 



THIS TEST MEASURES THE ROTATIONAL SPEED OF THE 
DISKBYMEASURINGTHETIMEPERIODOFTHE INDEX TULSE. 
MISADJUSTMENT IS A COMMON CAUSE OF SOFr DISK ER- 
RORS. THE SPEED MAY BE ADJUSTED AND CHECKED WITH 
THERErRYOPriON. 

UI. INDEX PULSE WIDTH 
WIDTH = XXXX.XX MSEC S/B 2.5-5.5 MSEC 

THIS IS THE PULSE WIDrH OF THE SIGNAL GENERATED 
WHEN THE INDEX HOLE PASSES IN FRONT OF THE INDEX 
DETECTOR CIRCUITRY OF THE DRIVE. 

IV.TRACK SWITCHTEST 

A. STEPTIMEFROM TRACK TO SWITCH = XXXX.XX 

B. STEP TIME FROM TRACK 1 TO SWITCH = XXXX.XX 

C. SWITCHPOINT(A/A+B) = XX% S/B 5% TO 95% 



VI DOUBLE DENSITY STATUS(EOX4) 

A. RESTORE USING INTRQ(D6) G0/NG 

B. READ SECrOR USING DRQ(D7) GO/NG 

C. NO. BYTES READ = XXXX S/B 256 BYTES 

SOME SYSTEMS USE THE STATUS WORD AT MEMORY 
LOCAIION E0X4 FOR DISK READ AND WRITE OPERATIONS. 
THIS TEST CHECKS THE FUNCTIONALITY OF THE TWO SIG- 
NALS ASSOCIATED WITH THIS STATUS WORD. 

VII. RADIAL ALIGNMENT TEST 

1. CHECK ALL TRACKS 

2. ALIGN 

3. EXIT 

4. CHECK SINGLE TRACK 

5. NEXT TEST 

6. PRINT SYMBOL TABLE 



THIS TEST VERIFIESTHE POSITION OF THE TRACK MICRO- 
SWITCH IS CORRECTLY ADJUSTED. THE TRACK 0' SIGNAL 
STOPS THE CONTROLLER FROM STEPPING WHEN A RESTORE 
TO TRACK COMMAND IS ISSUED. 

THIS TEST DETERMINES THE TRACK O SWITCHPOINT POSI- 
TION BY TIMING MEASUREMENTS. TIME MEASUREMENT 
AREMADESTARTING FROM THE STEP COMMAND UNTILTHE 
SWITCH TOGGLES WHEN: 

A. STEPPING FROM TRACK TO I AND 

B. STEPPING FROM TR ACK 1 TO 0. 

THE SWITCHPOINT IS THE RATIO OFONE MEASUREMENT TO 
THE SUM OF THE MEASUREMENTS (IE A/A+B). 

FOR DRIVES USING PHOTO DIODE POSITION DETECTOR 
SWITCHES. THIS TIMING TEST METHOD ACCURATELY RE- 
FLECTS THE PHYSICAL SWITCHPOINT POSITION. MEASURE- 
MENI"S OF 40-60% ARE TYPICAL FOR THIS TYPE OF DRIVE. 

FOR DRIVES WITH A MECHANICAL SWITCH. THE MEAS- 
UREMENI - IS INFLUENCED BY SWITCH SPRING TENSION. 
TYPICAL MEASUREMENTS OF 5 20% MAY BE 



-CHECK ALLTRACKSOR A SINGLE TRACK PRINrS. FOR EACH 
SECTOR. AN •■ FOR 256 BYTE SECTORS OR V FOR 128 BYTE 
SECTORS. THE ERROR CODE IS PRINTED FOR A SECTOR WITH 
AN ERROR. THE ERROR CODES MAY BE PRINTED BY ENTER- 
ING OPHON '6\ THETRACKS ARETESTEDOUTOFORDER.TO 
TEST FOR STEPPER MOTOR SKIP ANDDIRECHONALOFFSErS. 

- SECTOR SYMBOL TABLE: 

• 256 BYTE SECTOR OK 

. 128BYTESECTOROK 

U 0-127 BYTES READ INTO BUFFER. STATUS OK 

B 129255 B YTES READ INTO BUFFER. STATUS OK 

O OVER 256 B YTES READ INTO BUFFER. STATUS OK 

T TRACK NO ERROR. ON WRONG TRACK 

N NO DATA ON TRACK OR UNFORMATrED TRACK 

S MISSING SECTOR 

C ID FIELD CRC ERROR 

A ADDRESS MARK ERROR IN DATA FIELD 

D DATA FIELD CRC ERROR 



63 Mcro Journal 



April '69 



37 



- ALIGNMENT MAY BE PERFORMED WITH EITHER: AN OP- 
SYSTEM DISK COR DISK FROM ALIGNED DRIVE) OR WITH A 
DYSAN DIGITAL DIAGNOSTIC DISK. 

- USING THE OP-SYSTEM DISK: 

I ADJUSTTHE STEPPER MOTOR CLOCK WISE UNTIL ABOUT 
HALFOFTHESECrORS HAVE ERRORS AND MARKTHIS POSI- 
TION. 

2. ADJUST THE STEPPER MOTOR COUNTER CLOCKWISE 
UNHLHALFOFTHE SECTORS HAVEERRORSANDMARKTHIS 
POSITION. 

3. CENTER THE STEPPER MOTOR BETWEEN THE TWO 
MARKED POSmONS. 

- USING THE DIGITAL DIAGNOSTIC DISKETIE(DDD) 

A. REDUCTION OF SIGN AL STRENGTH TEST 

1. 5/12 AMPLITUDE - ALTERNATE SECTORS OFF 
SET BY 7 MILS 

2. 4/12 AMPLITUDE - ALTERNATE SECTORS OFF 
SETBY8MILS 

3. 3/12 AMPLITUDE • ALTERNATE SECTORS OFF 
SETBY9MILS 

THE HEAD PICKS UP A SIGNAL IN A 12 MIL WIDETRACK ON 
THE DISK. ALTERNATESECTORS ARE DISPLACED BY7. 8 AND 
9 MILS ON TRACKS 21.24 AND 27 RESPECTIVELY TO PRODUCE 
AN EFFECTIVE REDUCTION IN SIGNAL STRENGTH. THIS TEST 
CHECKS FOR WEAK DRIVE ELECTRONICS, HUB CENTERING, 
STEPPER PLAY, NEED FOR HEAD CLEANING AND MISAD- 
JUSTED HEAD LOAD PADS. 



VIII. READ/WRITE SECTOR TEST 

1. PATTERN 1 

2. PATTERN 2 

3. MODIFY BUFFER(M) 

4. EXIMINEBUFFER(E) 

5. READ SECTOR(R) 

6. WRITE SECTOR(W) 

7. NEXT SECTOR(N) 

8. RETURN TO FLEX(F) 

9. HELP(H) 

- PATTERN 1 INITIALIZES THE BUFFER TO HEXADECIMAL 
BDBDBD... 

- PATIERN 2 INITIALIZES THE BUFFER TO HEXIDECIMAL 
242424... 

- MODIFY BUFFER ALLOWS EDITING OF THE SECTOR BUFFER 
USING: 

N = NEXTBYTE 
L = LAST BYTE 
RTN = EXIT MODIFY 

- EXIMINE BUFFER PRINTS THE 256 BYTE SECTOR BUFFER IN 
A HEXIDECIMAL AND ASCII FORMAT 

- READ SECTOR READS THE SELECTED SECTOR INTO THE 
SECTOR BUFFER AND DISPLAYS THE SECTOR BUFFER 

- WRITE SECTOR WRITES THE CURRENT CONTENTS OF THE 
SECTOR BUFFER INTO THE SELECTED SECTOR 

- NEXT SECTOR READS THE NEXT SECTOR IN THE FILECHAIN 
• RETURN TO FLEX ENDS THE PROGRAM 

- HELP DISPLAYS ALL TEST VIII TEST OPTIONS 



B. TRACK OFFSET IN MILLI-INCHES 

TRY STEP DIRN=IN STEP DIRN=OUT LIMITS GO/NG 



1. +XX.XMILS 

2. +XX.X MILS 

3. +XX.XMILS 

4. +XX.XMILS 

5. +XX.X MILS 



+XX.X MIIS 
+XXXMILS 
+XX X MILS 
+XX.X MILS 
+XX.X MILS 



+/-1.5 GO 

+/-1.5 GO 

+/-1.5 GO 

+/-1.5 GO 

+/-1.5 GO 



•NOTE-SOURCE PROGR AM MODIFICATIONS ARE NECESSARY 
TO TEST 8 INCH DISK DRIVES. 



•DIGITAL DIAGNOSTIC DISKETTE' IS A TRADEMARK AND 
•DYSAN' IS A REGISTERED TRADEMARK OF DYSAN CORP. 
1244 REAMWOOD AVE. SUNNYVALE, 
CA, 94086 : 408-734-1634; 800551-9000 



THERE ARE SIX TRACKS AVAILABLE TO TEST RADIAL 
ALIGNMENT. THESE ARE TRACKS 0, 5, 16, 19, 30 AND 39. THIS 
TEST CHECKS THE SELECTED TRACK WITH PROGRESSIVE 
OFFSETS AND CALCULATES THE DISTANCE THE HEAD IS OFF 
OF CENTER. THIS IS DONE FROM TWO DIRECTIONS IN ORDER 
TO CHECK FOR H YS1ERISIS OR STEP DIRECTION DEPENDENT 
PLAY.THE MEASUREMENT RANGE IS -6 TO +6 MILS WITH AN 
ACCURACY OF +/0.5 MILS. 

C. AZIM UTHAL HEAD ANGLE TEST 
HEAD ANGLE = XX.X MIN S/B +/- 12 MIN 

THE DISK HEAD READS AND WRTTES ON THE RADIAL 
CENTERLTNE OF THE TRACK. THIS TEST MEASURES THE 
SKEW ANGLE OF THE HEAD RELATIVE TO THE TRACK CEN- 
TERLINE BY TESTING SECTORS WITH PROGRESSIVE ANGLE 
OFFSETS ON TRACK NO. 34. MEASUREMENT RANGE IS -18 TO 
+18 MINUTES WITH AN ACCURACY OF +/-1.5 MINUTES. 



DYSAN DIGITAL DIAGNOSTIC DISKS PART NUMBERS: 

5.25" 48TP1 SSSD(*508-100) SS()D(#5<»-200) DSSD(#50g-30Q) DSDIW508- 

4(10) 

5.25" 96TPI SSSD(#506.I(X>) SSI>D<»506-200) DSSD(#506-30Q) DSDD(»506- 

400) 

8.00" 48TPI SSSD(#808-IOO) SSDD(#8O8-200) DSSD(*808-300) DSDD<«808- 

400) 



FLEX 1 IS A TRADEMARK OFTECHNICAL 
SYSTEMS CONSULTANTS 



EOF 



38 



Apnl'89 



68 Micro Journal 



DDT 



DISK DRIVE AND CONTROLLER TEST PROGRAM 
(5.25 DRIVES, DC-1 TO DC-4 CONTROLLERS) 

THIS PROGRAM TESTS SINGLE OR DOUBLE DENS 
DISKS OPERATE ON THE SPECIFIED DRIVE. 
THIS PROGRAM ALLOWS FOR TRK ADJUSTMENT. 
ROTATIONAL SPEED ADJUSTMENT AND RADIAL 
ALIGNMENT USING A FORMATTED DISK FROM AN 
ALIGNED DRIVE OR A DIGITAL DIAGNOSTIC DSK 



EXAMPLE: 

ODT.D 
DDT 

DDT > FILE 

WRITTEN BY: 



(TESTS DRIVE 0) 
(ALLOWS CHOICE OF 

CONTROLLER I/O SLOT) 
(BUILDS PRINT FILE) 

EMERY KORP1 

40 BEATRICE AVE 

SYOSSET.NY 11791 



VERSION-2 ; DATE-8/87 



REFRENCES 
€502 ASSEMBLY LANGUAGE SUBROU- 
TINES 
BY LANCE A. LEVENTHAL AND WINTHROP SAVILLE 
PUB. OSBORNE/MCGRAW-HILL 1982 

THE FLEX DISK OPERATING SYSTEM 

BY TECHNICAL SYSTEMS CONSULTANTS, INC 

OR. COBB'S JOURNAL 

PEOPLE'S COMPUTER COMPANY 

VOLUME 8, ISSUE 12, DECEMBER 1983 

68' MICRO JOURNAL 
COMPUTER PUBLISHING INC. 
2/84, 6/84, 6/84 ISSUES 

NOTE: TO CUSTOMIZE THE DEFAULT MODE FOR 
YOUR SYSTEM, CHANGE THE SYSTEM 
DEPENDENT VARIABLES. 



* 
* 
• 

WARMS 


• 


FLEX LOCATIONS * 


EQU 


SCD03 


SBUG 


EQU 


SF814 


FMS 


EQU 


SD406 


FMSCLS 


EQU 


SD403 


FCB 


EOU 


SC840 


RPTERR 


EQU 


SCD3F 


GETFIL 


EQU 


SCD2D 


SETEXT 


EOU 


SCD33 


TTYEOL 


EQU 


SCC03 


NXTCH 


EQU 


SCD27 


LNPNTR 


EQU 


SCC14 


MB MEND 


EQU 


SCC2B 


PSTR 


EQU 


SCD1E 


GETCHR 


EQU 


SCD15 



DRVTST ORG $1000 

BRA START0 
VK FCB 2 VERSION 
START0 LBRA START 



• 
• 

• 
TRMSTA 


* 


SYS 


DEPEND VARS. * 


EQU 


SE004 TERMINAL STATUS 


TRMDAT 


EQU 


$B005 TERMINAL DATA 


DRVADD 


FDB 


SE010 DISK CONTROL A0DR 


CLKFLG 


FCB 





0-lMHZ, 1-2MHZ 


T7SECT 


FCC 


SOA 


,$14, $12, $24 


* 

• 
* 




SSSD.DSSD.SSDD.DSDD SECTORS 


* 


PROGRAM VARIABLES * 


PADDR 


FDB 


$3000 


PRTFLG 


FCB 







SAVLNP 


RMB 


1 




DRVNO 


FCB 


1 




DRVCMD 


FCB 


1 




CNTR 


FCB 


1 




DIGNO 


RMB 


3 




COUNT 


RMB 


3 




TEMP 


FCB 


1 




TEMP2 


FCB 


1 




TEMP3 


FCB 


1 




TIME 


RMB 


2 




BLSB 


RMB 


2 


BINARY LSB 


DMSB 


RMB 


2 


DECIMAL MSB 


BNCTIM 


FCB 


1 


BOUNCE TIME 


ERRFLG 


FCB 


1 


ERROR FLAG 


RETRY 


RMB 


2 


RETEST ADDR 


DVR 


RMB 


3 


DIVISOR 


DVD 


RMB 


3 


DIVIDEND 


T6FLG 


RMB 


1 


TEST 6 PASSED 


DDFLG 


RMB 


1 


TEST 6 GO FLG 


MAXSEC 


RMB 


1 


1 SECS/TRK 


FORMAT 


RMB 


1 


DISK FORMAT 


T70PTN 


RMB 


1 


T7 OPTION 


DNSFLG 


RMB 


1 


1-DD 


TRK 


RMB 


1 


TRACK NO 


SEC 


RMB 


1 


SECTOR NO 


ADDR 


RMB 


2 


MEMORY ADDRESS 


LIMT 


RMB 


2 


LO LIMIT 


STPSIZ 


RMB 


2 


CONTROLLER STEP SIZE 


STPREF 


RMB 


2 


TIME TO TRKD SWITCH 


STPCMP 


RMB 


2 


T5 MEASUREMENT 


RSLTN 


RMB 


1 


OFFSET RESOLUTION 


T7CNT 


RMB 


1 


LOOP COUNTER 


PCNT 


RMB 


1 


POSITIVE OFFSET 


NCNT 


RMB 


1 


NEGATIVE OFFSET 


LENGTH 


RMB 


1 


BYTES TO DIV 


LCOUNT 


RMB 


2 




HIDE1 


RMB 


3 




HI0E2 


RMB 


3 




RMOPTR 


RMB 


2 


REMAINDER ADDR 


TMPPTR 


RMB 


2 


TEMP ADDR 


DVRPTR 


RMB 


2 


DVR POINTER 


DVDPTR 


RMB 


2 


DVR POINTER 


• 
• 
• 


• 


PROGRAM MESSAGES * 



TITLE FCC "DISK DRIVE TEST PROGRAM IREV-8/87] ' , 4 

USGERR FCC 'Usage: DDT (, drive) ( > print file) ', 4 

SLTMSG FCC 'DISK CONTROLLER IN SLOT (0-7, 1-STD) 7 ',4 

SLTERR FCC 'INVALID DISK ADDRESS, RETRY(YZN)? ',4 

DRVMSG FCC 'DRIVE NO. (0-3)? ',4 

CLKMSG FCC 'SYSTEM CLOCK RATE (1-1MHZ. 2-2MHZ) 7 ',4 

HLTMSG FCC 'HALT AFTER EACH TEST (Y/N) 7 ',4, 

DSKMS1 FCC 'INSERT DISK IN DRIVE ' 

DSKMSH FCC ' , HIT RTN TO CONTINUE' , 4 



68 Micro Journal 



April '88 






39 



T1MSG FCC 
T1AMSG FCC 
T1AMSH FCC 
T1BMSG FCC 
T1BMSH FCC 
T1CMSG FCC 
T1CMSH FCC 
T1DMSG FCC 
T1DMSH FCC 
T1EMSG FCC 
T1EMSH FCC 
T2MSG FCC 
72AMSG FCC 
T2AMSH FCC 
OPTMSG FCC 
\4 

T3MSG FCC 
T3AMSG FCC 
T3AMSH FCC 
NUL 

GTHN 
T4MSG 
T4AERR FCC 
TIMES', 4 
T4AM1 
T4AH3 
T4BM1 
T4BM3 
T4CM1 
T4CH2 
RESMSG FCC 
T5MSG FCC 
T5MSH 
T5MSI 
T5EHSG FCC 
RATBL FCC 
T6MSG 
TfiMSl 
T6MS2 
T6MS3 
T SMS 3 A FCC 
INTDAT FCC 
NGO 
OK 

T7MSG 
T7MSG1 FCC 
3. EXIT ' 
T7MSH1 FCC 
TEST ' 
T7MSH2 FCC 
T7FORM FCC 
T7SYTB FCC 
SECTOR' 
T7SYTC FCC 
T7SYTD FCC 
T7SYTE FCC 
T7SYTF FCC 
T7SYTG FCC 
T7SYTH FCC 
T7SYTI FCC 
T7SYTJ FCC 
T7SYTK FCC 
T7SYTL FCC 
T7TRK FCC 
T7TNO FCC 
T7CHSG FCC 
UNTIL' 
T7CM5H FCC 
T7CMS1 FCC 
CLOCKWISE' 
T7CKS2 FCC 
T7CMS3 FCC 
T7CMS4 FCC 



FCC 
FCC 
FCC 



FCC 
FCC 
FCC 
FCC 
FCC 
FCC 



FCC 
FCC 



FCC 
FCC 
FCC 
FCC 



FCC 
FCC 
FCC 



SOD.SOA, 'I. DRIVE MOTOR STATUS (E0XB» ' , 4 

' A. READY RESPONSE TIME - ' 

> 0000.00 MSEC S/B L? 620 MSEC , 4 

' B. BUSY RESPONSE TIME - ' 

0000', 0,' 00 USEC S/B LT 34 USEC , 4 
' C. HEAD LOAD DELAY TIME - ' 
' 0000.00 MSEC S/B L? 200 MSEC , 4 

D. WRITE PROTECT - ' 
' \4 

E. INDEX PULSE COUNT - • 

• S/B GT 2', 4 
$0D,S0A, 'II. DRIVE SPEED TEST' , 4 

• PERIOD • ' 

'0000.00 S/B 200 + /-1 MSEC, 4 
$0D,S0A, ' OPTIONS: 1. RETRY 2. CONTINUE 



T7CMS5 FCC 'SWITCH POINT S/B * 

T7CMS6 FCC '0000' , $00, ' 00%' , 4 

T7MS2 FCC SOD, S0A, 'ENTER DISK TYPE' , SOD, S0A, ' 

SYSTEM DISK' 

T7MS2A FCC SOD, S0A, ' 

T7MS3 FCC 'WHICH SIDE 

T7MS4 FCC S0D.S0A, 'A. 

TESTS' ,$0D,$0A 



2. DIGITAL DIAGNOSTIC DISK 

(0 OR 1)7 ',4 

REDUCTION OF SIGNAL STRENGTH 



OP- 



',4 



1. 5/12 AMPLITUDE - ALTERNATE SECTORS 



MILS', 4 

4/12 AMPLITUDE 



- ALTERNATE SECTORS 



SOD.SOA, 'III. INDEX PULSE WIDTH' , 4 
' WIDTH - ' 

'0000.00 MSEC S/B 2.5-5.5 MSEC , 4 
0,0,0 
'GT • 

$0D,$0A, 'IV. TRACK SWITCH TEST' , 4 
'TRK SWITCH FAULT; SHOULD TOGGLE GT 5 



3/12 AMPLITUDE - ALTERNATE SECTORS 



LIMITS 



A. TIME FROM TRACK TO SWITCH - > 
' 0000.00 MSEC ,$0D,$0A 

B. TIME FROM TRACK 1 TO SWITCH - ' 
' 0000.00 MSEC, SOD, S0A 

C. SWITCH POINTU/A+B) - ' 
'0000', $00, '00% S/B 5-95%', 4 

BUSY STUCK HI AFTER RESTORE' , 4 
SOD.SOA, 'V. TRACK STEP TIME TEST' , 4 

STEP TIME - ' 
'0000.00 MSEC S/B LT 40 MSEC , 4 
' SEEK TO TRACK TIMEOUT' , 4 
$0F, SAO, $07, $D0, $03, $E8, $01, $F4, $00, $FA 
$0D,$0A, 'VI. DOUBLE DENSITY STATUS (£0X4) 
' A. RESTORE USING INTRQID6) - ',4 

B. READ SECTOR USING DRO(D7) - >, 4 
' C. NO. BYTES READ - ' 
'0000' ,$00, '00 S/B 256 BYTES', 4 
'101' 
'NG' 
'OK' 

$0D,$0A, 'VII. RADIAL ALIGNMENT TEST' 
'ENTER-1. CHECK ALL TRACKS 2. ALIGN 



T7MS5 FCC 
OFFSET' 

T7MS5A FCC ' BY 7 

T7MS6 FCC ' 2. 

OFFSET BY 8 ' 

T7MS6A FCC 'MILS' , 

3.EXITI7MS7 FCC ' 3. 

OFFSET BY 9 ' 

77MS7A FCC 'MILS', 4 

T7MSB FCC $0D,$0A, 'B. TRACK OFFSET IN MILLI- 
INCHES(MILS)' ,4 

T7MS9 FCC 'TRACK NO. (00,05,16, 19,30,39) 7 ',4 

T7MS10 FCC 'TRY STEP DIRN-IN STEP DIRN-OUT 
GO/NG' 

T7MS1Z FCC $0D,$0A 

T7MS1A FCC 

T7MS11 FCC 

T7MS12 FCC ' *XX.X ',4 

T7MS13 FCC 'MILS ',4 

T7MS14 FCC 

T7MS15 FCC 

T7MS16 FCC 

T7MS17 FCC 

T7MS18 FCC 

T8PROM FCC 
T8MSG 
T8SYM2 



— ',4 



' X. 

' *XX.X 

'MILS 

GO' , 
$0D,$0A, 



T8SYM 
4 T80PS 



C. AZIMUTHAL HEAD ANGLE TEST' , 4 
HEAD ANGLE -' , 4 
MIN S/B ♦/- 12 MIN',4 
-1.5 TO +1.5* ,4 
• ',4 
FCC SOD, $0A, 'VIII. READ/WRITE SECTOR TEST' , 4 
FCC '0123456789ABCDEFNL' , SOD, 4 
FCC ' 12MERWNFHB' ,4 

FCC 'ENTER OPTION: 1-PATTERN 1 2-PATTERN 2' 
M-MODIFY PATTERN E-EXAMINE 



TBOPS1 FCC 

PATTERN' , SOD, $0A, ' R-READ' 



' SECTOR W-WRITE SECTOR N-NEXT SECTOR 

' H-HELP B-BACK TO TEST VII', 4 

'BYTE NO. (00-FF) ? ', 4 

'CHANGE ',4 

'OPTIONS: N-NEXT BYTE L-LAST BYTE RTN- 



$0D,$0A,' 



4. CHECK SINGLE TRACK 5. NEXT 



'6. PRINT SYMBOLS ',4 

'ENTER FORMAT-l.SSSD 2.DSSD 3.SSDD 4.DSDD 

'SYMBOL TABLE! ' , SOD, $0A, * 



$0D,$0A,' , - VALID 128 BYTE SECTOR' 

$0D,$0A, ' T - TRACK NUMBER ERROR' 

$0D,$0A, ' C - ID CRC ERROR' 

S0D,$0A, ' N - NO DATA ON TRACK' 

$0D,$0A, ' S - MISSING SECTOR' 

$0D,$0A, ' A - NO DATA ADDR MARK' 

$0D,$0A, ' D - DATA CRC ERROR' 

$0D,$0A, ' O - OVER 256 BYTES' 

$0D,$0A, ' B - BETWEEN 129-255 BYTES' 

$0D,$0A, ' U - UNDER 128 BYTES' , 4 

TRACK (00-39) 7 ',4 

'TRACK 00 ',4 

$0D,$0A, 'A. ADJUST STEPPER MOTOR CLOCKWISE 

' HALF OF THE SECTORS HAVE ERRORS' , 4 
SOD.SOA, 'B. ADJUST STEPPER MOTOR COUNTER- 

' UNTIL HALF OF THE SECTORS HAVE ERRORS' , 4 
$0D,$0A, 'C. ADJUST STEPPER MOTOR SO IT IS' 
' CENTERED BETWEEN POINTS A. AND B.',$0D,$0A 



T80PS2 FCC 
FLEX' 

TBOPS3 FCC 
TBMSG1 FCC 
TBMSG2 FCC 
$0D,$0A TBMSG3 FCC 
EXIT', 4 
T8MSG4 FCC 
TBMSG5 FCC 
TBMSHS FCC 
T8MSG6 FCC 
«0 00 00 00' 
- VALID 256 BYTZ8MSH6 FCC ' AAAAAAAAAAAAAAJU ' , 4 

T8MSG7 FCC SOD, S0A, • SECTOR (01-36) ? 
TBMSG8 FCC 'SECTOR READ ERROR' , 4 



•BYTE 00 
•BYTE: 
' IB »C 
•X0-XF 



00 ',4 

10 II 12 13 14 15 16 17 18 19 »A' 

10 «E IF ASCII', 4 

00 00 00 00 00 00 00 00 00 00 00 00 



T8MSG9 FCC 
T8MS10 FCC 
TBMSll FCC 
TBMS12 FCC 
T8MS13 FCC 
T8MS14 FCC 



'WRITE PROTECT ON' , 4 
'WRITE ERROR', 4 
•SECTOR VERIFIED' , 4 
'TRACK 00 SECTOR 00' 
'AK£ YOU SURE1Y/N)? ' 
■SECTOR OUT OF RANGE' 



BFULL FCC $0D,$0A, 'BUFFER FULL-SAVING' , 4 



Aprt'M 



UMcroJttaTMl 



■ 

« 


• PROGRAM SUBROUTINES • 


•INCHNE-INPUT CHARACTER, NO ECHO 


INCHNE 


LOA 


TRMSTA 


TERMINAL STATUS 




BITA 


• $01 


DATA7 




BEQ 


INCHNE 


NO 




LDA 


TRMDAT 


GET CHARACTER 




ANDA 


IS7F 






RTS 






INCH 


LDB 


TRMSTA 






BITB 


• 501 






BEQ 


INCH 






LDA 


TRMDAT 






ANDA 


• $7F 






JSR 


OUTCH 






RTS 






OUTCH 


PSHS 


B,Y 






LDB 


PRTFLG 






BEQ 


OUTCH1 






LDY 


PADDR 






CMPA 


ISO A 






BEQ 


OUTCH1 






CMPY 


MEMEND 


BUFF FULL? 




BNE 


OUTCHO 






PULS 


B, Y,X 






LDX 


IBFULL 






JSR 


PSTR 






JMP 


EXTO 




OUTCHO 


STA 


,* + 






STY 


PADDR 




OUTCH 1 


LDB 


TRMSTA 






BITB 


IS02 






BEQ 


OUTCH1 






STA 


TRMOAT 






PULS 


B,Y,PC 




•FILCHK-PUTS 


FILE NAME INTS FCB 


FILCHK 


LDX 


LNPNTR 


SAV FIL NAM 




STX 


SAVLNP 






LDX 


• FCB 






JSR 


GETFIL 






BCS 


FILERR 






LDA 


11 


FCB<.TXT 




JSR 


SETEXT 






INC 


PRTFLG 






RTS 






* 








FILERR 


PULS 


X 






JSR 


RPTERR 






JSR 


FMSCLS 






JMP 


WARMS 




•CHKIN 


-CHECK 


CHARICTER IS IN RANGE, ECHO 


CHKIN 


STA 


HI + 1 1 


JPPER LIMIT 




STB 


LO+1 LOWER LIMIT 


CHK1 


JSR 


INCHNE 


GET CHARACTER 


LO 


CMPA 


• SFO 


COMPARE UPPER 




BLT 


CHKER 




HI 


CMPA 


• SOD 


COMPARE LOWER 




BGT 


CHKER 






BRA 


CHKOK 




CHKER 


LDA 


• 507 


BELL 




JSR 


OUTCH 






BRA 


CHK1 




CHKOK 


JSR 
RTS 


OUTCH 


OUTPUT CHARACTER 


•INCMP 


-INPUT CHAR AND COMPARE TO CHARS 


INCMP 


CLR 


TEMP 


CHR POINTER 




JSR 


INCHNE 


GET CHAR 


INCMP1 


CMPA 


,x 


CHAR? 




BEQ 


INCMP3 






INC 


TEMP 






LDB 


, X* 


EOF? 





CMPB 


• $04 






BNE 


INCMP1 


LOOP 


INCMP2 


LDA 


• 50? 


BELL 


INCMP 3 


LDB 


TEMP 






JSR 


OUTCH 


PRINT 




RTS 






•HEXCON-CONVERTS *A" 


REG TO ASCII 


•MSB IN M(U) 


, INC U: 


LSB IN M(U), INC 


HEXCON 


PSHS 


A 


STORE BYTE 




ASRA 




GET MSN 




ASRA 








ASRA 








ASRA 








BSR 


HEXPUT 


CONV TO ASCII 




STA 


,u+ 


STORE MSB CHAR 




PULS 


A 


READ BYTE 




BSR 


HEXPUT 


CONV TO ASCII 




STA 


,u+ 


STORE LSB CHAR 




RTS 






HEXPUT 


ANDA 


l$DF 






ADDA 


• $30 






CMPA 


• $39 






BLS 


OP I 






ADDA 


• $07 


CONV TO LETTER 


OP1 


RTS 







•BDCON-BINARY TO DECIMAL CONV. 
•X-BINARY MSB,U>DECIMAL LSB 
•B-NO. OF BINARY BYTES ON ENTRY 





•B-NO. 


OF DECIMAL BYTES ON RETURN 




BDCON 


BRA 


BDS1 






BBYTES 


RMB 


1 


NO OF BINARY BYTES 




DLSB 


RM8 


2 


LOCATION OF BCD LSB 




BBCNTR 


RMB 


1 


L2 COUNTER 




DBYTES 


RMB 


1 


NO OF DECIMAL BYTES 




CCREG 


RMB 


1 


TEMP CONDITION CODE 




L3CNTR 


RMB 


1 


LOOP COUNTER 


* 


BDS1 


LOA 


• $01 








STA 


DBYTES 


SET NO DEC BYTES 






STB 


BBYTES 


SET NO BIN BYTES 






STU 


DLSB 


DECIMAL LSB POINTER 






CLR 


, U 






LI 


LDA 


l$08 


NO BITS PER BYTE 






STA 


BBCNTR 


SET COUNTER 




L2 


LDA 
LSLA 


,x 


LOAD BIN BYTE 
GET MS BIT 






STA 


,x 


SAVE BIN BYTE 






LDU 


DLSB 


SET U TO DLSB 






LOB 


l$00 


CLEAR L3 CNTH 






STB 


L3CNTR 






L3 


LDA 


.u 


GET DEC BYTE 






ADCA 


,U 


C+2 (DEC BYTE) 






TFR 


CC,B 


STORE CARRY 






STB 


CCREG 








DAA 




DEC ADJUST 






STA 


.U 


STORE RESULT 






TFR 


CC,B 








ORB 


CCREG 


ANY CARRIES? 






LEAU 


-1,U 


POINT TO NEXT DBYTE 






INC 


L3CNTR 


INC COUNTER 






LDA 


L3CNTR 








CMPA 


DBYTES 


DECIMAL MS BYTE? 






BNE 


OUT3 








ANDB 


• $01 


CARRY? 






BEQ 


L2END 


NO 






INC 


DBYTES 


NEED MORE SPACE 






CLR 


,U 


CLEAR SPACE 


STARTING AT IX) OUT3 


TFR 


B,CC 


RESTORE CARRY 






BRA 


L3 






L2END 


DEC 
BNE 


BBCNTR 
L2 


LOOP COUNTER 




L3END 


DEC 
BEQ 
LEAX 


BBYTES 

FIN 

1,X 


GET NEXT BIN BYTE 



66 Mere Journal 



Aprt -as 



41 



BRA LI 

FIN LDB DBYTES 

RTS 
•DBCON-DECIMAL TO BINARY CONV . 
•X-DECIMAL MSB, U-BIN LSB 

•B-NO OF DEC BYTE-ON ENTRY 

•B-NO DF BIN BYTES ON RETURN 

DBCON LDA IS01 INIT BIN BYTES 

STA BBYTES 

STB DBYTES NO DEC BYTES 

STU BLSB 

STX DMSB 

DBL1 LDA IS08 HO OF BITS 

STA BBCNTR 

DBL2 ANDCC »S00 CLR CARRY 

LDB DBYTES 

DBL3 JSR DBSHR RT SHFT 

LDA ,U GET BIN NO 

RORA 

STA , U 

LDX DMSB 

DEC BBCNTR 

BNE DBL2 

NOP 

DBL4 LEAX 1,X INC X 

STX DMSB 

DEC DBYTES NEXT BYTE? 

BEQ DBOUT FINISH 

LDA ,X GET BYTE 

BED DBL4 ZERO? 

LEAU -1,0 NEXT BIN BYTE 

INC BBYTES 

BRA DBL1 SHIFT DEC 

DBOUT LDB BBYTES 

RTS 
•DEC AD J- IF BCD CHR GE 6, ADD 3 

DECADJ PSHS A 

ANDA ISOF LS ND 

CMPA »$08 

BLO DCAS1 

SUBA »$03 

DCAS1 STA TEMP 

PULS A 

ANDA »SFD MS NO 

CMPA #$80 

BLO DCAS2 

SUBA »S30 

DCAS2 ADDA TEMP 

RTS 
•DBSHR-ROTATE LS BIT INTO CARRY 

DBSHR LDA , X GET DEC BYTE 

RORA 

PSHS CC CARRY 

JSR DECADJ 

STA ,X+ RESTORE DEC 

PULS CC 

DECB BIT CNTR 

BNE DBSHR 

RTS 
•GETDEC-TAKBS TMO KEYBD INPUTS, CONV TO BIN * IN A 

GETDEC LDD #$3930 GET MSB 

JSR CHKIN 

ASLA PUT IN MSB 

ASLA 

ASLA 

ASLA 

STA TEMP 

LDD #$3930 GET LSB 

JSR CHXIN 

ANDA #$0F ZERO MSB 

ORA TEMP 

STA TEMP 

LDU ITEMP2 BIN I 



LDX |TEMP DEC I 

LDB #$01 CONV 1 BYTE 

JSR DBCON 

LDA TEMP 2 

RTS 
•XFER-TRANSFER DATA; A-l BYTES, 

•X-START OF SOURCE DATA, U-START OF DESTINATION 

XFER LDB ,X+ GET CHAR 

STB , U + STORE CHAR 

DECA COUNTER 

BNE XFER 

RTS 
•TIMER-20USEC TIMING LOOP TO COUNT UNTIL 

•BIT IN 'A' IS LO IB-27) OR HI IB-26) 
•RESULTS STORED AT COUNT+1 

TIMER STA BIT + 1 TIMED BIT LOCN 

STB BRHILO TIMEOUT ON 1/0 

LDX ($0001 INIT COUNTER 

TCMD LDA l$0F RESTORE 

STA 8,Y CMD REG 

TLOOP LDB 8,Y STATUS 

BIT BITB l$00 CHK BIT 

BRHILO BRA TIMOUT COMPARE 

NOP DELAY 

LEAX 1,X INC CNTR 

BNE TLOOP LOOP 

MAXTIM LEAX -1,X REMOVE OFFSET 

STX COUNT+1 STORE RESULT 

LDX IGTHN GET UPDATE 

BRA TCI CONTINUE 

TIMOUT LEAX -1,X REMOVE OFFSET 

STX COUNT+1 STORE RESULT 

LDX INUL GET UPDATE 

TCI LDA #$03 NO OF BYTES 

JSR XFER UPDATE MSG 

LDA #$O0 INTERRUPT CMD 

STA 8,Y CMD REG 

JSR DELTS 1/10 SEC DEL 

RTS 
•UPDMSG-UPDATE MESSAGE; TAKES DATA IN 
•COUNT, CONVERTS TO DECIMAL DATA IN MSG 

UPDMSG PSHS U TEMP STORE U 

LDA #$00 CLR SCRATCH 

STA COUNT BIN MS BYTE 

STA DIGNO DECIMAL I 

STA DIGNO+1 

ANDCC #$00 CLR CARRY 

LDX (COUNT BINI SETUP 

LDU #DIGNO+2 DEC( SETUP 

LDB #$03 NO OF BYTES 

JSR BDCON CONVERT 

PULS U RESTORE MSG PNTR 

LDA DIGNO GET MSB 

JSR HEXCON CON+UPDATE 

LDA DIGNO+1 GET NEXT BYTE 

JSR HEXCON CON+UPDATE 

LEAU 1,U SKIP DEC PT 

LDA DIGNO+2 GET LAST BYTE 

JSR HEXCON CON+UPDATE 

RTS 
•CLKCMP-COMPENSATION FOR CLOCK RATE 

CLKCMP LDA #$00 CLR SCRATCH 

STA COUNT CLR MS BYTE 

LDA CLKFLG 

BNE CLKC1 SKIP IF 2MHZ 

ANDCC #$00 CLR CARRY 

ROL COUNT+2 CNT:-2<CNT) 

ROL COUNT+1 

ROL COUNT 
CLKC1 RTS 

•PASFAL-CHECK TEST LIMITS, SET ERRFIC IF NG 

PASFAL CMPD COUNT+1 HI LIM OK? 

BHS PSF1 OK 



Aprf'88 



68 Mcro Journal 





INC 


ERRFLG 


ERR 




STA 


OPTDIR+1 JUMP TABLE 


PSF1 


LDD 


LIMT 


GET LO LIMIT 


OPTDIR 


BRA 


OPTDIR 


JUMP 




CMPD 


COUNT+1 


LO LIM OK? 




BRA 


OPT1 






BLS 


PSF2 


OK 




BRA 


OPT2 






INC 


ERRFLG 


ERR 




BRA 


OPT3 




PSF2 


LOA 


COUNT 


MSB-OT 


OPT1 


PULS 


X 






BEQ 


PSF3 


OK 




LDA 


ISOD 






INC 


ERRFLG 


ERP 




JSR 


OUTCH 




PSF3 


RTS 








LDB 


B, Y 




•TESTOK-CHECK IF TEST GO, OPTIONS IF NOGO 




JSR 


DELHS 




TESTOK 


JSR 


PSTRNG 


PiUNT 




LDX 


RETRY 






LOA 


ERRFLG 


ERROR? 




JMP 


,x 






BEQ 


OKOUT 




OPT2 


CLR 


ERRFLG 






JSR 


OPTION 






RTS 






OKOUT 


RTS 






OPT3 


PULS 


X 


CLR RTS ADDR 


•DELAY 


-56USEC DELAY 






JSR 


PCRLF 




DELAY 


LBSR 


DEL2B 




*. .PROGRAM EXIT 




DEL2B 


LBSR 


DEL14 




EXIT 


JMP 


EXTO 




DELI 4 


LBSR 


DEL3 




EXTO 


TST 


PRTFLG 




DEL3 


RTS 








BEQ 


EXT2 




•DELHS 


-HALF 


SECOND DELAY 




LDX 


IFCB 




DELHS 


PSHS 


D 






LDY 


SAVLNP 


FILE NAME 




JSR 


DELTS 






STY 


LNPNTR 






JSR 


DELTS 






JSR 


GETFIL 






JSR 


DELTS 






BCS 


OPTERR 






LDA 


ISO? 






LDA 


11 




DELL1 


LOB 


B,Y 


READY? 




JSR 


SETEXT 






BITS 


IS80 






LDA 


12 


OPN TO MR 




BEQ 


DELOT 






STA 


,X 






JSR 


DELTS 






JSR 


FMS 






DECA 








BEQ 


EXT1 






BNE 


DELL1 






LDA 


1,X 


IF FIL EXISTS! 


DELOT 


PULS 
RTS 


D 






CMPA 
BNE 


13 

OPTERR 




•DELTS 


-TENTH 


SECOND 


DELAY 




LDA 


112 


DELETE FILE 


DELTS 


PSHS 


X 


STORE X 




STA 


O.X 






tst 


CLKFLG 


» 




JSR 


FMS 






BNE 


DlT 






BNE 


OPTERR 






LOX 


IS3333 


INIT CNTR 




LDY 


SAVLNP 


RESTOR FIL NAM 




BRA 


D2T 






STY 


LNPNTR 




D1T 


LDX 


IS6666 






JSR 


GETFIL 




D2T 


LEAX 


-l.X 


DEC CNTR 




BCS 


OPTERR 






BNE 


D2T 


LOOP 




LDA 


11 






PULS 


X 


RESTORE X 




JSR 


SETEXT 


FCB<.TXT 




RTS 








LDA 


12 


OPN TO WRITE) 


•PCRLF 


-CARRAGE RTN.LINE FEED 




STA 


0,X 




PCRLF 


LDA 


ISOA 






JSR 


FMS 






JSR 


OITCH 






BNE 


OPTERR 






LDA 


ISOD 




EXT1 


LDA 


ISOO 


, 




JSR 


OITCH 






STA 


,x 






RTS 








LDY 


IS3000 




•PSTRNG-PRINT AND SET ERRFLG IF KEYBOARD ENTRY 


EXTLP 


LDA 


. Y + 




PSTRNG 


LDA 


TRMSTA 


TERMINAL STAT 




JSR 


FMS 






BITA 


fSOl 


DATA? 




BNE 


OPTERR 






BEQ 


PSTO 


NO 




CMPY 


PADDR 






INC 


ERRFLG 






BLO 


EXTLP 




PSTO 


JSR 


PCRLF 






LDA 


ISOD 




PDATA 


LDA 


,X+ 


GET CHAR 




STA 


,Y 






CMPA 


IS04 


EOF? 




CMPY 


PADDR 






BEQ 


PST2 






BLS 


EXTLP 






CMPA 


ISOO 


NOP? 




LOA 


14 


CLOSE 




BEQ 


PDATA 






STA 


,X 






JSR 


OUTCH 


PRINT 




JSR 


FMS 






BRA 


PDATA 






BNE 


OPTERR 




PST2 


RTS 






EXT2 


JMP 


WARMS 




•OPTION-TEST 


OPTIONS 


; U-RETRY ADDRESS 


OPTERR 


JSR 


RPTERR 




OPTION 


LDX 


tOPTMSG 


OPTIONS 




JSR 


FMSCLS 






JSR 


PDATA 


PRINT 




LDX 


ISLTERR+22 




LDD 


»S333l 


SET LIMITS 




JSR 


PSTR 






JSR 


CHKIN 


GET CHAR 




JSR 


GETCHR 






ANDA 


ISOF 


CONV TO DEC 




CMPA 


1* Y 






SUBA 


IS01 


SUBT 1 




LBEQ 


EXIT 






ASLA 




MULT BY 2 




BRA 


EXT2 





6S Moo Joumri 



April 'M 



43 






*HUL3X1-C0UNT:-CNTR X DVD 
MUL3X1 LDU ICOUNT+3 

LDX fDVDO 

CLR TEMP 

CLR TEMP + 1 

JSR MUL1 

JSR MUL1 

STA COUNT 

RTS 
HUL1 LDA , -X 

LDB CNTR 

MUL 

ADDD TEMP 

STB , -U 

STA TEMP+1 

RTS 
•MBDIV-MULTIBYTE DIVIDE DVD :- DVD/DVR 
•DATA FORMAT - MSB AT LOWEST ADDR 
•CARRY-1 FOR ERROR, -0 FOR VALID RESULT 
•SET 'LENGTH' TO NUMBER OF DATA BYTES 
•RMDPTR POINTS TO LSB OF REMAINDER. 
MBDIV PSHS X,Y,U 

LDA LENGTH 

BNE DINIT 

LBRA EREXIT 
•LCOUNT :• 8 (LENGTH) +1 
DINIT LDB IS08 

MUL 

ADDD IS0001 

STD LCOUNT 
•CLEAR ARRAYS i SET LSB POINTERS 

LDA LENGTH 

LDY IHIDE1 

LDU IHIDE2 
ZAIL CLR ,Y + 

CLR ,U+ 

DECA 

BNE ZAIL 

STY RMDPTR 

STU TMPPTR 
•SET LSB POINTERS DVRPTR, DVDPTR 

LDD IDVD 

AODB LENGTH 

ADCA 1500 

STD DVDPTR 

LDD IDVR 

ADDB LENGTH 

ADCA 1500 

STD DVRPTR 
•DIVISOR-0? 

LDA LENGTH 

LDX DVRPTR 
CHKL1 LDB , -X 

BNE DIV1 

DECA 

BNE CHKL1 

LBRA EREXIT 
•DIVIDE USING TRIAL SUBTRACTION 
DIV1 ANDCC ISFE CLR C 
DLOOP LDA LENGTH 

LDX DVDPTR 
SLLP1 LDB , -X 

ROLB 

STB , X 

DECA 

BNE SLLP1 
•DECR BIT CNTR AND EXIT IF DONE 
•NO CHANGE TO CARRY 

L0X LCOUNT 

LEAX -1,X 

BEQ OKEXIT 

STX LCOUNT 
•SHIFT THE CARRY INTO THE LS BIT OF THE 



•UPPER DIVIDEND 

LDA LENGTH 

LDX RMDPTR 
SLLP2 LDB ,-X 

ROLB 

STB , X 

DECA 

BNE SLLP2 
•SUBTRACT DVR FROM REMAINDER PLACING THE 
•DIFFERENCE INTO TEMP STORAGE 

LDA LENGTH 

ANDCC ISFE CLR C 

LDX DVRPTR 
SUBLP LDB ,-Y 

SBCB , -X 

STB . -U 

DECA 

BNE SUBLP 

TFR CC,A 

COMA 

TFR A,CC 
•IF CARR* -0, SUBTRACT NOT SUCCESSFULL, 
•NEXT BIT OF QUOTIENT IS 0. 
•IF CARRY=1, SUBTRACTION SUCCESSFULL, 
•NEXT BIT OF QUOTIENT IS 1, 
•SET HDEPTR TO NEW REMAINDER. 

LDY RMDPTR 

LDU TMPPTR 

BCC DLOOP 

EXG Y,U 

STY RMDPTR 

STU TMPPTR 

LBRA DLOOP 
OKEXIT ANDCC ISFE CLR C 

BRA DEXIT 
EREXIT ORCC IS01 SET C 
DEXIT PULS X,Y,U,PC 
•RESTOR-RETURN TO TRACK 
RESTOR LDA 1503 SLOW RESTORE 

LDX ISOOOO 5 SEC TIMOUT 

STA 6.Y CMD REG 
RESLP JSR DELAY 28 USEC 

LDB 8,Y STATUS 

BITB 1501 BUSY? 

BEQ RESOUT NOT BUSY 

LEAX 1,X COUNT 

BNE RESLP BUSY LP 
RESERR LDX RESMSG TIMEOUT 

JSR PSTRNG PRINT 

JSR OPTION OPER OPS 
RESOUT RTS 

•RDDATA-READ ONE SECTOR OF DATA 
RDDATA LDB TRK TRACK-0? 

BEQ RDDATO SINGLE DEN 

LDB DNSFLG 

BEQ RDDATO 

ORA IS02 DOUBLE DEN 
RDDATO LDB T6FLG IF T6 USE E0X4 

BEQ RDDATl 

BRA RDDAT2 
RDDATl STA 8,Y CMDREG 

JSR DELAY 

BRA RDD4 
RDD3 LDA 11, Y DATA REG 

STA ,X+ STORE DATA 
ROD* LDB 8,Y STATUS 

BITB 1502 DRQ? 

BNE RDD3 

BITB 1501 BUSY? 

BNE RDD4 

RTS 
•RDDAT2-READ DATA USING E0X4 STATUS 
RDDAT2 STA 8.Y CMDREG 



April '8B 



68 Wero Journal 





JSR 


DELAY 






BRA 


RDD40 




RDD30 


LDA 


11. Y 


DATA REG 




STA 


,X+ 




RDD40 


LDB 


4.Y 


STATUS 




BKI 


RDD30 


DRQ? 




BEO 


RDD40 






LDB 


8.Y 


STATUS 




RTS 






•HRDATA-WRITE DATA TO SECTOR OF DISK 


WRDATA 


LDB 


TRK 


TRK-D? 




BEO 


HRDATO 


SING DEN 




LDB 


DNSFLG 






BEO 


HRDATO 






ORA 


IS02 


DOUBL DEN 


HRDATO 


LDB 


T6FLG 


IP T6.1 USE 




BEO 


HRDAT1 


E0X8 STATUS 




BRA 


HRDAT2 




•NRDAT1-WRITE DATA USING E0X9 STATUS 


WRDAT1 


STA 


8.Y 


CMDREG 




JSR 


DELAY 






BRA 


HDD4 




NDD3 


STA 


11. Y 


DATA REG 


NDD4 


LDA 


.X* 




NDD5 


LDB 


8.Y 


STATUS 




BITB 


IS02 


DRQ? 




BNE 


HDD3 






BITB 


IS01 


BUSY? 




BNE 


MDDS 






RTS 






•WRDAT2-WRITE DATA USING E0X4 STATUS 


WRDAT2 


STA 


8.Y 


HRITE CHD 




JSR 


DELAY 






BRA 


HDD 40 




NDD30 


STA 


11. Y 


DATA REG 


W0D40 


LDA 


.X* 




W0D50 


LOB 


4. Y 


STATUS 




BMI 


HDD 30 






BEO 


HDD 50 






LDB 


8, Y 






RTS 






•SEEK- 


UPDATES TRACK. 


SECTOR ( SIDE < 


SEEK 


STB 


10. Y 


SEC REG 




JSR 


DELAY 






CKPA 


9.Y 


TRK REG 




BEO 


SKSEC 




SKTRK 


STA 


11. Y 


DATA REG 




JSR 


DELAY 






LDA 


tsia 


SEEK TRK 




STA 


8.Y 


CMD REG 




JSR 


DELAY 




SKT1 


LDA 


8.Y 


STATUS 




BITA 


IS01 


BUSY? 




BNE 


SKT1 


LOOP 


SKSEC 


LDA 


DRVCMD 






TST 


9.Y 


TRK 




BEO 


SKSD 






TST 


DNSPLG 


DOUB DENS? 




BNE 


SKDD 




SKSD 


CKPB 


• 50A 


SEC GT 10? 




BGT 


SKSDl 


SIDE 1 




BRA 


SKSDC 




SKDO 


CKPB 


IS1Z 


SEC GT 18? 




BGT 


SKSDl 




SKSDC 


ANDA 


IS40 


SIDE 0? 




BEO 


NOUP 


NO UPDATE 




LDA 


DRVCMD 


SET TO 




ANDA 


»$BP 






BRA 


SKCH 




SKSDl 


ANDA 


IS40 


SIDE 1? 




BNE 


HOUP 






LDA 


DRVCMD 


SET TO 1 




ORA 


IS40 





SKCH 


STA 


DRVCMD 






STA 


4. Y 


CMD DRV 




JSR 


DELTS 


.1 SEC DEL 


NOUP 


RTS 






•SCRAMBLE-GENERATES 


TRK FROM CNTR 


SCRAMB 


LDA 


CNTR 


GET TRK CNT 




LSRA 




MOV D2 TO DO 




LSRA 








ANDA 


• SOI 






STA 


TRK 


TEMP STORE 




LDA 


CNTR 






LSLA 




MOV DO TO D2 




LSLA 








ANDA 


IS04 






ORA 


TRK 


COMBINE 




STA 


TRK 


TEKP STORE 




LDA 


CNTR 






ANDA 


ISFA 


CLR D0,D2 




ORA 


TRK 


REVERSE DO. D2 




STA 


TRK 


IN TRK 




RTS 






•CONTIN-CONTINUE AFTER MANUAL ACTION 


CONTIN 


JSR 


PSTRNG 


PRINT 




LDX 


IDSKMSH 


1+1 HIT RTN 




JSR 


PDATA 






JSR 


INCKNE 


WAIT 




LDB 


8. Y 


STATUS 




JSR 


DELHS 


SPEEDUP 




RTS 






•ASCII 


-EVALUATES IF 


REG A IS ASCII, 


ASCII 


CMPA 


• 520 


LO ASCII 




BLO 


ASET 






CKPA 


• S7F 


HI ASCII 




BHI 


ASET 






BRA 


AOUT 




ASET 


LDA 


»' . 


PERIOD 


AOUT 


RTS 






•RDSEC. 


-READ 


TRACK 'TRK' SECTOR »SEC 


256 BYTES 






•'0 IF 


OVER 


256 BYTES, " VALID 256 


128 BYTE SEC. 




•'D IF 


STATUS ERROR 




RDSEC 


LDX 


tsoooo 


DATA POINTER 




LDA 


TRK 


SET TRACK 




LDB 


SEC 


SET SECTOR 




JSR 


SEEK 


STEP TO TRK 




LDA 


• S8C 


READ SEC CMD 




JSR 


RDDATA 


READ SEC 


RDSEC 1 


BITB 


• SOS 


CRC ERR? 




BEO 


RDSEC2 






LDA 


I'D 






BRA 


RDSEC9 


PRINT 


RDSEC2 


BITB 


tsio 


REC NOT FND 




BEO 


RDSECS 






LDA 


«'S 






BRA 


RDSEC 9 




RDSEC3 


CMPX 


tsoioo 


256 BYTES? 




BEO 


RDSEC5 


OK • 




BLO 


RDSEC4 


LOH 




LDA 


• '0 


OVER 




BRA 


RDSEC9 




RDSEC4 


CMPX 


•S0080 


128 BYTES? 




BEO 


RDSEC6 


OK . 




BLO 


RDSC4A 


UNDR 




LDA 


*'B 


BTHN 




BRA 


RDSEC9 




RDSC4A 


LDA 


»'U 


UNDER 




BRA 


RDSEC9 




RDSECS 


LDA 


• ' * 






BRA 


RDSEC9 




RDSEC6 


LDA 


• ' . 




RDSEC9 


RTS 






•RDTRK 


-OUTPUT TRACK 


t AND SECTOR STA 



IF NO SET TO I' 



*A' - 'U IF UNDER 



VALID 



UMcroJoumd 



Aprt'tt 



RDTRK 


LDA 


TRK 


GET TRK 1 




STA 


TEMP 2 


TEMP STORE 




LDX 


ITBMP2 


ADDR 




LDU 


ITEMP 


DEC ADDR 




LDB 


• $01 


CONV 1 BYTE 




JSR 


BDCON 


BIN TO DEC 




LDA 


TEMP 






LDU 


IT7TNO+6 MSG ADDR 




JSR 


HEXCON 


UPDATE MSG 




LDX 


#T7TNO 


MSG 




JSR 


PSTRNG 


PRINT 




LDB 


• $01 


FIRST SEC 




STB 


SEC 




RDTR1 


JSR 


RDSEC 


READ SECTOR 




CKPA 


I'S 


REC NOT FND7 




BEO 


RDADD 


FIND ERR TYPE 




CMPA 


• ' * 


OK 7 




BEQ 


RDDUTO 






CMPA 


• ' . 


OK 7 




BEQ 


RDOUT0 






BRA 


RDOUT 




RDADD 


CLR 


TEMP 


LOOP CNT 


RDADD 1 


I.DX 


•$0000 






LDA 


ISC4 


READ ADDR 




JSR 


RDDATA 




RDADD2 


BITB 


• $10 


REC NOT FOUND 




BEQ 


RDADD3 


NO DATA 




LDA 


I'N 


ON TRK 




BRA 


RDOUT 




RDADD3 


LDX 


•$0002 


SEC NO 




LDA 


,x 






CMPA 


SEC 






BEQ 


RDADD5 


ID CRC 




INC 


TEMP 






LDA 


TEMP 


READ ALL SEC7 




CMPA 


MAXSEC 






BNE 


RDADD1 


LODP 


RDADD4 


LDA 


»'S 


NO SEC | 




BRA 


RDOUT 




RDADD5 


BITB 


• $08 


CRC ERR7 




BNE 


RDAD06 


TRK ERR 




LDA 


I'C 






BRA 


RDDUT 




RDA0D6 


LDA 


.X 


TRK 1 




CMPA 


TRK 






BEQ 


RDADD7 


DATA ADDR MARK 




LDA 


• 'T 


TRK ERR 




BRA 


RDOUT 




RDADD? 


LDA 


I'A 


DATA AM 


RDOUT 


INC 


ERRFLG 


ERROR 


RDOUTD 


LDB 


TRMSTA 


KEYSTROKE? 




BITB 


• $01 






BEO 


RDOUT1 






INC 


ERRFLG 




RDOUT1 


JSR 


OUTCH 


PRINT 




INC 


SEC 






LDA 


TRK 


TRX 07 




BNE 


RDOUT2 


NO 




LDB 


FORMAT 


DISK FFMT 




ANDB 


• $01 


SET TO SD 




LDX 


IT7SBCT 


GET MAX SEC 




LDA 


B,X 






BRA 


RDOUT3 




RDOUT2 


LDA 


MAXSEC 




RDOUT3 


CMPA 


SEC 


LOOP? 




LBHS 


RDTR1 






RTS 






•STPRTE-STBPS IN TO 


TRK0 FOR TIMB-20USEC(X) 


« 


AND 


THEN CL8ARS CONTROLLER 


STPRTE 


LDX 


STPSIZ 


SET DELAY 




LDA 


IS0F 


RESTORE CMD 




STA 


b,y 


CMD REG 


DBL20U 


LBRN 


DBL20U 


DELAY 





LBRN 


DEL20U 






NOP 








LEAX 


-1,X COUNT 




BNE 


DEL20U 






LDA 


l$D0 


INTRPT 




STA 


8, Y 






RTS 






*OFFSET-FIND 


THE OFFSET OF THE HEAD WITH 


CAL DISK 






*CENTERLINE. 


RSLTN CONTAINS THE STEPSIZI 


QUANTITY 






•IN MILS OR 


MINUTES. 




OFFSET 


LDA 


• $00 


INIT VARS 




STA 


SEC 






STA 


CNTR 


OFFSET CNTR 




STA 


PCNT 


+OFFSET 




STA 


NCNT 


-OFFSET 


OFFHI 


INC 


SEC 






JSR 


RDSEC 


READ SEC 




CMPA 


• ' . 


CORRECT? 




BEO 


OFFHI1 






CMPA 


• '* 


CORRECT? 




BNE 


OFFLO 




OFFHI1 


LDA 


CNTR 


IF CORRECT 




STA 


PCNT 




OFFLO 


INC 


SEC 






JSR 


RDSEC 


READ SECTOR 




CMPA 


• ' . 


CORRECT? 




BEO 


OFFLOl 






CMPA 


• ** 


CORRECT? 




BNE 


OFFEX 




OFFLOl 


LDA 


CNTR 


IF CORRECT 




STA 


NCNT 




OFFEX 


INC 


CNTR 


ALL SECTORS? 




LDA 


CNTR 






CMPA 


($08 






BNE 


OFFHI 






LDB 


NCNT 


NCNT:— NCNT 




NEGB 








STB 


NCNT 






LDA 


PCNT 


READ ALL +OFFSETS? 




CMPA 


• $07 






BNE 


OFF1 






ADDB 


IS0C 


PCNT:-NCNT+12 




STB 


PCNT 






BRA 


OFF2 




OFF1 


CMPB 


l$F9 


READ ALL -OFFSETS? 




BNE 


DFF2 






SUBA 


• S0C 


NCNT;-PCNT-12 




STA 


NCNT 




OFF2 


LDB 


PCNT 


B:-ABS(PCNT-NCNT) 




ADDB 


NCNT 






BMI 


OFF3 


NEG OFFSET? 




LDA 


#' + 






BRA 


OFF 4 




OFF3 


LDA 

NEGB 


• *- 




OFF4 


STB 


TEMP 3 






STA 


T7MS12+1 


STORE SIGN 




LDA 


RSLTN 


COUNT :-B*RSLTN 




MUL 








STD 


COUNT 


SET LS DIGIT 




LSR 


COUNT 


OF RESULT 




ROR 


COUNT+1 






BCC 


OFF5 






LDA 


• *5 






BRA 


OFF 6 




OFF 5 


LDA 


• '0 




OFF6 


STA 


T7MS12+5 






LDX 


•COUNT 


SET MS 2 DIGITS 




LDU 


IDIGNO+1 


OF RESULT 




LDB 


• $02 






JSR 


BDCON 





ApriTM 



68 Mero Journal 





LOU 


IT7MS12+2 




LDA 


DIGNO+1 


CONV DIGIT 




J5R 


HEXCON 






LDX 


»T7MSli" 






J5R 


PDATA 


PRINT 


* 
• 


RT5 






• MAIN PROGRAM • 


START 


J5R 


NXTCH 


DRIVE NOT 




5TA 


TEMP 






LDX 


(TITLE 






J5R 


PSTRNG 






LDA 


TEMP 


DRIVE NO. 7 




CMP A 


ISOD 


IN CMD LINE? 




BED 


PROMPT 


NO DATA 




CMP A 


#S0A 






BEQ 


PROMPT 






CMP A 


i$30 


VALID ENTRY 




BLT 


STRTO 






CMPA 


•S33 






BGT 


STRTO 






BRA 


DEFLT 




STRTO 


CMPA 


r> 






BEQ 


STRTl 




USGER 


LDX 


IUSCERR 






J5R 


PSTRNG 






JMP 


HARMS 




STRT1 


J5R 


FILCHK 






BRA 


PROMPT 




DEFLT 


J5R 


NXTCH 






CMPA 


IS20 






BEQ 


DEPLT 






CMPA 


• •> 






BNE 


DEF1 






J5R 


FILCHK 




OEF1 


LDY 


DRVADDR 


INIT SLDT 




LDA 


TEMP 






5TA 


DSKMSH 






ANDA 


• 50F 






STA 


DRVCMD 






LDX 


•STRT3 






5?X 


RETRY 




* 


LDA 


ISOO 


0-1M, 1-2MH2 


* 


STA 


CLKFLG 






CLR 


ERRFLG 






LBRA 


Tl 




PROMPT 


LDX 


ISLTMSG 


I/O SLOT? 




J5R 


PSTRNG 


PRINT 




LDD 


•$3730 


SET HI/LD 




J5R 


CHKIN 


GET CHAR 




ANDA 


• SOP 


ASCII TO BIN 




AS LA 








ASLA 








A5LA 








ASLA 








STA 


DRVADD+1 SET CONT . ADDR 




LDY 


DRVADD 


I/O ADDR 




LDA 


I5AA 


TEST DATA 




STA 


11, Y 


DATA REG 




JSR 


DELAY 






LDA 


11. X 


CONTROLLER? 




CMPA 


• $AA 






BEQ 


PROMP 2 






LDX 


ISLTERR 






JSR 


PSTRNG 






JSR 


INCH 






CMPA 


• ' Y 






BEQ 


PROMPT 






LBRA 


EXIT 




PROMP2 


LDX 


• DRVMSG 


DRIVE NO? 



STRT2 



P ROMP 3 



STRT3 



NOHLT 
NOHLT1 



Tl 



T1A 



TIB 



T1B1 
T1B2 



JSR 

LDD 

JSR 

STA 

ANDA 

STA 

LDX 

JSR 

LDD 

JSR 

ANDA 

LSRA 

STA 

CLR 

LDX 

JSR 

JSR 

CMPA 

BNE 

INC 

LDX 

STX 

BRA 

LDX 

STX 

LDX 

JSR 

JSR 

LDX 

STX 

TEST 

LDX 

JSR 

LDA 

STA 

LDU 

LDD 

JSR 

JSR 

LDD 

STD 

LDD 

JSR 

JSR 

LDX 

JSR 

LDU 

LDA 

STA 

LDB 

STB 

LDA 

STA 

BRA 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 

NOP 



GET CHAR 
STORE DRIVENO 



PSTRNG 

■$3330 

CHKIN 

DSKMSH 

ISDF 

DRVCMD 

•CLKMSG CLOCK RATE? 

PSTRNG PRINT 

IS3231 LIMITS 

CHKIN 

ISOF 



ASCII->BIN 
A:-A-l 



CLKFLG 

ERRFLG CLEAR ERRORS 
IHLTMSG HALT AFTER TST 
PSTRNG 
INCH 
• ' Y 
NOHLT 

ERRFLG SET ERROR 
IHLTMSG 
OPT2+1 
NOHLT 1 
(ERRFLG 
OPT2+1 

tDSKMSl INSERT DISK 
PSTRNG PRINT 
INCHNE WAIT 
•PROMP3 RETEST AODR 
RETRY STORE 
1 - DRIVE MOTOR STATUS (E0X8) 
•T1MSG DRV MOT STATUS 
PSTRNG PRINT 
DRVCMD GET CMD 
4,Y ORVREG 
(T1AMSH READY DEL TIME 
IS8027 TIME D7-LO 

MEAS TIME 

CLK COMPENS 

LO-0SEC 



TIMER 

CLKCMP 

150000 

LIMT 

ISF230 

PASFAL 

UPDMSG 



HI-.62SEC 

LIM OK? 

UPDATE MSG 
•T1AMSG GET MSG 
TESTOK PRINT 
IT1BMSH BUSY RESP TIME 
IS01 INIT TIMER 
CNTR STORE 
IS18 INIT BRANCH 
T1B2+1 STORE 

RESTORE NO VER 

CMDREG 

3(J DELAY 

2U DELAY 



ISOO 

8,Y 

T1B3 



To Be Continued Next Month 



WWereJoumtl 



April '89 



47 




By. All of us 



'Condm ,%% • tyui Vlpfag ', DMW '86 



MOTOROLA INC. 



Microprocessor Products Group 
6501 William Cannon Drive West 
Austin, Texas 78715-8598 



CONTACTS 
Shcmaj DlVCT 

runmnchamCommuwaOan, Inc. 
(40^^62 0400 



Ow Mosfcy 
ecu 
28 M 



Microprocessor Pfndutit Group 
(Slimi-M" 



HCL AMERICA ANNOUNCES 6S030-BASED MINICOMPUTER 

System Iteornoraics up to Su 68030 Processor* and 68HK2 Math Coprocessors 

AUSTIN, Teaas, Feb 6, 1989— HCL America (Sunnyvale, Cahi). a subsidiary of Indus 
Largest actrrpuier manufacturer, loday announced a mulupnxts^w muucrsnsjsvieT based, on 
Motorola's 6SO30 (030) proensv and 68882 1882) imA crjpxocea**. TV system, called 
M3000 series, uses up K> six 25 MHz 030s each coupled wish a 25 Mhx 882 and is targeted 
ai office auicarwbon and on-line iranucoori processing. 

HQ/s announcement r^s to a growing base of manufattiBeji offering 030 based 
products including Apple Conjurer, Apollo. Hew Lett -Packud. NEC and Sony Mktmysknn 
The 030 n ihe topW- the- line micruonmur in Motorola'i 68000 firmly that includes ihe 
68000. 68008. 68010 and 68020- The 68000 family has invented (he largest software base 
(S3 billion} and most ejiablished hardware base (S100 bsllton), The 030's enrnpaj ibOsty with 
picceding membtn of the 68000 family protects manufacturers' o*iginal auftware imxumcnis 
by allowinl for easy migration of software ftorn one 68000 dumxw*- to another. 

"'IV030'ivert*n]iiy«ndpncc/porfarTTunceadrtnii|ema)teii a rialuial choke for a 
wide range of markets. " said Murray A. Goldman, senior vice preside m and general manage* 
of Motorola i Microprocessor Products Group (Austin, Texas). 'X)ur scon -to- be- a ntwunted 
680^0 will be a revolutionary produci thai suppnna our large 68000 installed base " 

HCL America is a wholly ownad jutMitary of HC1. Ltd., Indus largen computer 
company andkading supplier of Uni* based maefwoes KO, AmcT%*. rfeadQuanxicd in 
Sunnyvale, Calif, markets IJrua.ba^multtyrocusj* computer syslems and software, as 
well as cuAoraiard %at rware services to OEM cuspmcjY 

Moaoioti's 512 billion Semuamrfuctoi Products Sector [Phoeni* , Aha.), which 
includes ihe Mkn^nu-etwc PioducaOffoup (Austin. Texas), ts a part of Motorola Inc his 
the largest and broadest supplier of ctTRurocrurcsft in Noc^ Atttj*^. wiih a balanced 
portfolio of over 50,000 device*. 



SOFTWARE DEVELOPMENT SYSTEMS, INC 

4246 BEUJE AIRE LAKE • DOWNERS GROVE. ILLINOIS 606 IS . USA 
PHONE 1-312 971^I70« FAX: 14124714613 

Contact: James E. Ouilienger 

February 21, 1989 

Mr Larry Williams 
Exocutpns Editor 
68 Micro Journal 
Computer Punishing. Inc. 

S^Ca*ar*fca Smith Road 
Mooon, Tennessee 173*3 

Dear Sir. 

Thanfci for letting ui know about your journal and please canoe rac for not gotuag bock So 
you. Since your magazine b ucdcaied to ihe orwerafe of Motorola rnkrcfanravMon, | would 
expec) thai your readers will be interested in ihe ertloacd press release rogardtrrg our 
CrwasCodc C produci, which bjvM now being mtmsurxxJ under the VAX VMS operating 
sysirtrt- CrtXSCodcCb an optimizing CcmspiieT that rum on ihe VAX and generates 
ROM*bleeodeforalJmcTT*ct»of MoUKOla'aC^QCO Eamiryofn 



CroasCode C is uacd to develop a wide variety of fi£0uT>baaed applaaiiorw. including 
autoototrvc control iIcvwq. aerospace and defense product*, amuaernrnt devices, cttrnriuu? 
and cnrnmunkaiiorti equipment, oraumo produda. User scanning equipment, and medical 
uulnimenla. 

CroasCode C alfc/ws our cusaumar* to dcveact> code for these ibin using the VAX which 
provide* a complete and friendly software OLVLkr^uou envinsnmcOL Here's taw iiworktc 



VAX 
VMS 


Ikl " 


taw) 
hirdwue 



The programme i&cs all the powerful and Umfltar tools on the VAX (it terminals, primer*, 
file syslan. text editor, eic.) to produce C source code for a program that will evcniuilly iut> 
on the 48000 based hardware- CroaaCode C iben on^ c* lib aowrr code iruo an object fib 
which feprescnis the actus 1 irwruciian codes to he exccuieO by ihe 68000. Tno objeel file b 
then convened tmo a formal that b suiiaNe rot tranvruMjtn down a data link lo ibe 68000 
hardware, where ihe object code a omfled in a nutshell lhat's how OiKmor C b used. 

h miTv tvy&at^ realty tprcvd about this ^mmcr Omducau*? Ye* there b- Crautbdc C b 
flow one of the very few 66000 CcomrderafrUl prwviAa identical capabOisiea under ihieer 
diSer^tor^atingryitcmerrvtrortnienta: VMS. UNIX, and MS-DOS. Not only thai, bui it 
allows users lo move their source, object code, and object llhrvka lo different types of 
m^iuKavtfhriii rwwuj to rocompile « rdink thenL That's because CroasCode Ci object 
f ilea are inderendem of the machine on which they were g»icr»tcd- 

Fnr ezampi e, a fronted* C user can take object file* or Ubrarie* that were generated en a 
VAX. move them loa PC or a SUN and iheo use ihe PC or SUN as aorrcks^rocn) machine 
Poupie who have nctwvrts con uuning macKines that *W*i two or rhrer different operating 
systems (VMS, UNIX or MS-DOS) can share their object fOea across the entire network 
wjthoul having lo worry about what type of machine they happen to be using at the moment 

Any mac hineort the network, can he used aa a iScvelonrrwi i «**uon to generate code foe a 
68000 based uppJicaiJon. Here's an eiatnpie. 



48 



ApriJ'89 



68 Micro Journal 



twining 
VMS 



Ibftfli/fg 

MS .MS 



UNIX 
machine 



I hope iha Iclfcc/ has giwn >tw enough mfcwnultoo lo decide wr»cthcT our release will bitcrol 
your rcadc/a. K you have any tnJcstiona about OnwsVode C or ilk significance' to VMS lUcra, 
ptease give men coll 141 I*312-*71.*I7K> onU III gladly g/ve you more informalion 

I'veenrUiscd (wo Mack -and white phMta. Sul if )nu nrefri a rotor pJiotO lit send yo\> one 
On* enckMod pliolo a to Undv^p* o«VM»ll. - and the o4h*r tt a portrait If you plan id prim 
ihe proJ release, ptcauc civuioW that your rcadcra may want lo see a pkturr of ihc pnxluct 

DianV you tor yo^r lime and »umt*Dn 



Stnwd$ 



DjivJ F Zitlrr. Vrr F'rcftnlenl 




ROMable 68000 C Compiler 
Now Available Under VAX VMS 

Eight months after uw/<*h**ng in CnWodc C aawyOer under MS-OOS and UNIX 
!ollwc Dcvck»pfi«jii Syucmi. Inc. <SDSI) has announced thai the compiler a now hcing 
mide tvailaMe under VAX VMS CrotvCod* C is in optima uig C anpOer chal generate* 
ROMabk code fa all 6TO00 Family fnnr*CT\ indjtfcng the hitfwnd 68020 and «VlV) 
nrDD"wa> ihe W88 1 and C««2 Doalingpofnl cravoLW<ara, and ihe 68*5 I MMU. Users may 
wrile source code in any awnhmafian of C and aiiernhry language compile (he ccoe into 
object file*, and then [ink the object files to form a complete Utad for *ny 6BO0C family 



SDSl fognd (hat many «f the enmpanica using VMS (or emheddtxJ syaom development 
were also using MS-DOS and UNIX hosed machaiea- Because of thtx. SDSl dnj^^ 
C*fK*Codc Clorun identically ind to share source and object files acrou all three operating 
ryitenu. Tor example, the CroaaCodeC linker on the VAX can link object (Bra that were 
genera icdhy ihe CnoaCode C compler under MS-D«S This feature tltow* users lo move 
the)/ fOurttr code, objocl files and libraries from machine lo machine without making any 
changes at all. 

Craiat'odt- <- come* with a MmwnU^ornruEMe macro ivvrmMer. ■ linker, a librarian, 
and a C Irhaiy ctinlaining the source to over 47 C function* Mao included tt a uncvenal 
dptanJaaarr that enmmunkatea with EF*KOM prt3gr*/nmaw emulators and target hardware. 
The ddwnloader convert* user*' miyded C code nut Motorola S-RccorJs ami a variety of 
ouW «ndua**/y oa/vlard fDe formats. II also emit* avmKaie information lo provide symbolic 
debugging capahQiuea on many popdar emulator*, including those made by Applied 
Mjcmtyucfni. Atron. liunltville MkxtSYslema, Mkx<OS£_ Norlhmeal Instrument!. Orion 
[reiriumruiv Softaitl Sophia, .iml /AX 

CpduCooVC iw on all member* of the VAX famOy, including the MiaoVAX 2000, 
McroVAX I], MkroVAX 3500/3600, VAX 730 and 380, VAX 6200. and VAX BOOT Scrie* 
Piicea aurt at tt J95 on (he MkroVAX 2000 



SOFTWARE DEVELOPMENT SYSTEMS. INC w*» formed in 1 9M (o provide CTOU 
development ioWt to people who huikl ROMable annlsEa (ion*. Sbice Ukfl SOSI haa 
prw*W orasm tnspilai and ctcjb •^onbrro w many hundmb of cortpanuB and their 
araihanls. Software Oevelopntfn t Systems, tnc is dbdsaicd entirety to the design. 
(Tumdkctune. and support of Cfm* dcvci»vjmQTl software 




ULTRASCIENCE 



The PC-68K1 
PC Co-Processor 

Prnmnat t twnputrni lli-rimw Computrr Sytlrnu 

Why? 

The standardized, widely accepted, and ubiquitous 1DM 
Personal Computer represents an enormous, yet largely 
untapped, resource or computing power. Unless con- 
nected to a costly LAN and fileserver, the single-user "PC" 
provides neither the level of interaction nor the con- 
venient sharing of data so necessoiy in business, science, 
or industry. However, the simple addition of a PC-6SKI 
expands and enhances a PC into a real-time, multi-user, 
multi-tasking, professional computer system, running 
OS-9 and MS-DOS concurrently. A PC-68K1/OS-9 
equipped PC can host a wide variety ofhigh performance 
application software, previously reserved for much larger 
and far more expansive machines, without snenftang 
MS-DOS applications. The OS-9 operating system offers 
extensive networking capability and a range of popular 
languages, including C. BASIC, PASCAL, FORTRAN. 
etc. Powerful C language VAX/UNIX extensions and a 
special set of OS-9/UNIX library routines make convert- 
ing UNIX applications tu the more efficient OS-9 a simple 
and straightforward task. 

How? 

All that is required to get un-line is an operating PC, a 
PC-68K1 and OS-9. The PC-68K1 allows the user to ftip 
between active MS-DOS und OS-9 tasks, using the Per- 
sonal Computer monitor, keyboard, and existing disk 
drive*. MS-DOS files are available to OS-9 and vice versa. 



TheMEMlOX 
Memory/ IO 
Expansion Board 

Expand Your PC to 14 Ports and 2 Mega RAM 



Why? 



Anyone who has discovered the capability of real-time, 
multi-user, multitasking OS-9 and the power of the 
PC-66K1 co-processor knows that adding 10 more 
efficient serial ports and another megabyte of wait 
state RAM to a PC-66K1 will turn a "PC" into a 
substantial computer system. Such a system can run 
a business, control a plant, automate a laboraloiy, or 
support an entire class, and the price is right! 

How? 

The MEMIOX board plugs onto the PC-66K1 and it is 
ready to go. For standard installations, there are no 
jumpers or switches to set The convenient R.J45 port 
connectors are mounted right on the MEMIOX board 
set, so there is no clumsy hardware to attach and 
connecting peripherals could not be easier. 
Ultrascience offers a complete line of shielded R.J45 
modular cable and adapters to make cabling a snap. 

FAX#l-3l2-2SMM7 PHONE 1 1312 2S6 0080 TB.EX I 910-997-0379 
1624 WIlMEm AVE. ■ P.(X 80X556- WiUCTTE. I 60091 



68 Micro Journal 



April '89 



49 



s 



FCC 


'GOTO' 


FCB 





FDB 


OOGOTO-CTABIZ 


FCC 


'IF* 


FCB 





FDB 


DOIF-CIABLE 


FCC 


'NOTE* 


FCB 





FDB 


OONOTE-CTABIE 


FCC 


'ON* 


FCB 





FDB 


DOON-CTABLE 


FCC 


'PAUSE' 


FCB 





FDB 


DOPAU5-CTABI£ 


FCC 


'REM" 


FCB 





FDB 


OOREM-CTABLE 


FCC 


'SHIFT' 


FCB 





FDB 


DOSHFT-CTABLE 


FCB 






FCB 





FDB 


PARON 


FCC 


'THEN' 


FCB 





FDB 


PARTHN 


FCB 






* MESSAGES FOR RESIDENT PART OF 'DO' 

'FLEX comnartd error' 
4 

'BREAK entered' 
4 

'Batch file aborted' 



• PARAMETER TABIE 



e 



s 



PTABLE FCC 


'CONTINUE 


FCB 





FDB 


PARCON 


FCC 


'ELSE' 


FCB 





FDS 


PAREI5 


FCC 


'ENDIF' 


FCB 





FDB 


PARNDF 


FCC 


'ERROR' 


FCB 





FDB 


PAREHR 


FCC 


'EXIST* 


FCB 





FDB 


PARXT 


FCC 


•GOTO' 


FCB 





FDB 


PARCIO 


FCC 


'IF* 


FCB 





FDB 


PAR IF 


FCC 


'NOT' 


FCB 





FDB 


PARN07 


FCC 


•OFF' 


FCB 





FDB 


PAROFF 


FCC 


'ON' 



CMJE3H 


FCC 




FCB 


9REAKM 


FCC 




FCB 


ABORTH 


FCC 




FCB 


FILERH 


FCC 




FCB 


PREFH 


FCC 




FCB 


CHDPEH 


FCC 




FCB 


CONTNM 


FCC 




FCB 


NOLABM 


FCC 




FCB 


INIFH 


FCC 




FCB 


NOIFH 


FCC 




FCB 


KEN DM 


FCC 




FCB 



w o 

^ O 

< _l 

a r 

1 * 

M « 

GO © 

9 « 

63 



9 



'Illegal file type' 
4 
'Illegal parameter reference In batch file' 



'Batch file conma/id error' 



'Preaa any key to continue ... ' 



'Label not found' 



'ELSE or ENDIF not found' 



'ELSE or ENDIF without IF' 



s 

n » 

9" 3 

3 ? 



o 
n 
n 
(/> 
(/> 
o 



'MEMEND changed by batch file; DO rranory not released' 




RES ID 


JSR 


PCRIF 


RESID1 


LEAX 


HEADCH.PCR 


ROUTINE 








STX 


INCK+1 




LBSR 


TSTABT 




LBSR 


READLN 




LDA 


LINBUF 




CHPA 


»CR 




BEQ 


RESIDl 




BSR 


TSTCMD 




BNE 


RESIDl 




JSR 


OOOWD 




STB 


I.STERR.PCR 




TST 


ERRFLG.PCR 




BEQ 


RESIDl 



SETUP INPUT VECTOR TO 'DO' CHAR INPUT 



TEST FOR ABORT FROM THE USER 
READ NEXT LINE FROM COMMAND FILE 
IGNORE EMPTY LINES 



TEST FOR A 'DO' INTERNAL COMMAND 

IF NOT, CALL DOS 

SAVE LAST DOS ERROR 

ONLY CHECK ERROR IF ERRFLG SET 



s 



FN0IB1 



LBNE 


OS KERR 




LBSR 


READLN 




IDA 


LIMBUF 




CHPA 


• 'g 




BNE 


FNDIB1 




JSR 


NXTCH 




LOX 


LABPTR, 


PCR 


LBSR 


COMPAR 




BEO 


FNDL81 




IDA 


SAV9CH 


PCR 


STA 


ECHOPL, 


PCR 


OR 


GOTOFL 


PCR 


RTS 







* process *if' ocmwo 



DOIF 


CLR 


NOTFLG,PCR 




LBSR 


CHKPAR 




CMPB 


•PARNOT 




BHE 


DOIF1 




COM 


NOTFLG,PCR 




LBSR 


CHKPAR 


DOIF1 


CMPB 


• PARXST 




BNE 


DO IF? 




IDX 


toewn 




L£AX 


-F_LEN, X 




JSR 


GETFIL 




BCS 


OOERR 




LOA 


•MOPNR 




STA 


F_FUNC, X 




JSR 


FMS 




BEQ 


DOIF1A 




IDA 


F_ERR, X 




CHPA 


•E_FNF 




BBQ 


OOFLSE 


doerr 

* 


LBRA 


DSXERR 


0OIF1A 


IDA 


IM_CLOS 




STA 


F_PUNC, X 




JSR 


FMS 




BNE 


DOERR 


* 


LBRA 


DOTRUE 


DOIF2 


CHPB 


•PARERK 




BNE 


DOIF 3 




TST 


LSTERR,PCR 




LBNE 


OOTRUE 




BRA 


DOFLSE 


DOIF3 


LDY 


LINPTR 




PSHS 


y 


DOIF4 


JSR 


NJflCH 



ERROR 

READ LINE FROM COMMAND FU£ 

IF NO LABEL THEN CONTINUE (UNTIL EOF) 



ELSE MOVE LINE POINTER TO START OF LABEL 



COMPARE LABELS 
CONTINUE IF NO MATCH 
RESTORE ECHO FLAG 

CLEAR GOTO FLAG 
EISE RETURN 



CLEAR 'NOT' PARAMETER FLAG 
CHECK PA/WE TER 
IF 'NOT' 

THEN SET 'NT' PARAMETER FLAG 
AND GET KEXI PARAMETER 
IF 'EXIST' 

SETUP TEHPORARY FCB 



REPORT DOS ERROR, INVALID FII£NAME 
TRY TO OPEN FII£ FOR READ 



IF ERROR m FILE NOT FOUND THEN FALSE 

ELSE DISK ERROR 

IF NO ERROR, CLOSE FII£ AND GOTO TRUE 



ELSE IF 'ERROR' 

THEN IF LAST ERROR FLAG <> 
THEN TRUE 
ELSE FALSE 

ELSE LOOK FOR '-' 





WA 


•CR 




LBEQ 


CWPER 




CHPA 


• *- 




BNE 


D0IF4 




LDY 


LINPTR 




LOA 


•SPACE 




STA 


,-Y 




LEAY 


1,1 




LOA 


0,Y 




CHPA 


•SPACE 




BHI 


DOIF5 




JSR 


NXTCH 


DOIF5 


PUIS 


X 




LDY 


LINPTR 




LBSR 


COMPAR 




BNE 


DOTRUE 




STY 


LINPTR 


D0IF6 


JSR 


NXTCH 




CMPA 


> SPACE 




BHI 


DOIF6 


DOFLSE 


TST 


NOTFLG.PCR 




BNE 


DOTRUl 


DOFLS1 


LBSR 


CHKPAR 




CHPB 


•PARTHN 




BBQ 


DOFLS2 




CMPB 


IPARGTO 




LBNE 


CMDPER 




RTS 




DOFLS2 


IDA 


eCfiOFL,PCR 




STA 


SAVBCH,PCR 




CLR 


8CB0FL.PCR 




INC 


OOTOFL.PCR 




CLR 


IFLEVX,PCR 


DOFLS3 


LBSR 


READLN 




LBSR 


CHKPAR 




CHPB 


fPARIF 




BNE 


0OFLS4 




INC 


IFLEVX.PCR 




BRA 


D0FLS3 


DOFIS4 


CHPB 


•PARNDF 




BNE 


DOFLSS 




DEC 


IFI£VX,PCR 




BPL 


DOFLS3 




BRA 


D0FIS6 


DOFI.SS 


TST 


IFLEVX.PCR 




BNE 


DOFIS3 




CMPB 


•PARELS 




BNE 


DOFLS3 




INC 


IFLEVL.PCR 



IF CR FOUND, HAVE PARAMETER ERROR 



CHANGS *-' TO SPACE 



IF NEXT CHAR - DELIMITER 



THEN GET NEXT CHAR 

RESTORE POINTER TO FIRST STRING 

SAVE LINPTR 

COMPARE STRINGS 

RESTORE LINPTR 

H3VE PAST SBCOND STRING TO CHAR <- SPACE 



FALSE; TEST 'NOT' FLAG 

DEFINITELY FAI.SE; CHECK PARAMETER 
IF NOT 'THEN' OR 'GOTO' HAVE ERROR 



IF 'THEN' SAVE CURRENT ECHO FLAG 

DISABI£ ECHO 

SET GOTO FLAG TO DISABI£ PARAKS 

CLEAR BYPASS 'IF' I£VEL 

READ NEXT COMMAND LINE 

IF 'IF' 

THEN INCREMENT BYPASS 'IF' LEVEL 
CONTINUE 

IF 'ENDIF' 

THEN DECREMENT BYPASS 'IF' I£VEL 

EXIT LOOP IF < 

IF BYPASS 'IF' I£VBL > 
THEN CONTINUE LOOP 
IF 'ELSE' 

THEN INCREMENT 'IF' NESTING LEVEL 



TSTB 

BEQ RESID1 

LEAX ERRLAB,PCR 

IBSR FNDLAB 

BRA RESID1 



IF DOS ERROR 

THEN GOTO LABEL IN 6RR1AB 



* INTERNAL COMMAND PROCESSING ROUTINES 



* TEST FOR INTERNAL 'DO' COMMAND, AND PROCESS IT 

* RETURN Z = FOR INTERNAL COMMAND , Z - 1 OTHERWISE 



8 



S 

2 
§ 



TSTCK) 


IDA 


fLINPTR] 




CMPA 


t' < 




BEQ 


TSTCKL 




CMPA 


*'8 




BNE 


TSTCM2 


TSTCM1 


LBSR 


DOR EM 




BRA 


TSTCM3 


TSTCM2 


LBSR 


CHKCMD 




BEQ 


TSTCM4 




JSR 


D,X 


TSTOO 


1DB 


»1 


ROUTINE 






TSTChH 


RTS 





r 

n 

o 



2. 



• PROCESS 'ECHO' COMMAND 

ft 

DOECHO LBSR CHKPAR 

CHPB IPARON 

BNE DOECH1 

IDA i$FF 

STA ECHOFL, PCR 
RTS 

* 

DOECH1 CMPB IPAROFF 

I BNE CMDPER 

CLR ECHOFL, PCR 

RTS 



• PROCESS ELSE COWBND 





DOELSE 


TST 


IFLEVL, PCR 


X 




BEQ 


NIFERR 


s 

o 




LDA 


ECHOFL, PCR 




STA 
CLR 


SAVECH, PCR 
ECHOFL, PCR 



GET FIRST CHAR OF NEW COMMAND 

IF COMMENT CHAR THEN PROCESS COMMENT 



IF LABEL CHAR THEN PROCESS AS A COMMENT 



ELSE CHECK FOR AN INTERNAL 'DO' COM«ND 

IF IT IS, CALL ROUTINE TO PROCESS IT 
CLEAR ZERO FLAG TO INDICATE INTERNAL 



CHECK PARA»«TER 
IF 'ON' 



THEN SET ECHO FLAG ON 



ELSE IF NOT 'OFF' 

THEN HAVE ERROR 

ELSE SET ECHO FIAG OFF 



IF 'IF' NESTING LEVEL • 

THEN HAVE ERROR 

ELSE SAVE CURRENT ECHO FLAG 





INC 


GOTOFL,PCR 




CLR 


IFLEVX, PCR 


ooei-Sl 


LBSR 


READLN 




IBSR 


CHKPAR 




CMPB 


IPARIF 




BNE 


DOELS2 




INC 


IFLEVX, PCR 


DOEI.S2 


CMPB 


IPARNDF 




BNE 


DOE LSI 




DEC 


IFLEVX, PCR 




SPL 


D0ELS1 




CLR 


GOTOFL,PCR 




IDA 


SAVBCH, PCR 




STA 


ECHOFL, PCR 


D0ELS3 


DEC 
RTS 


IFLEVL, PCR 



PROCESS ENDIF COMMAND 



DOENDF 


TST 


IFLEVL, PCR 




BNE 


DOELS3 


NIFERR 


LEAX 


NOIFM, PCR 




LHRA 


P ERROR 



PROCESS 'EXIT' COMMAND 
DOEXIT LBRA EXIT 

PROCESS 'GOTO' COMMAND 



DISABLE ECHO 



DOGOTO 


L£AX 


LABEL, PCR 




IBB 


*e 


DOGOTD 


JSR 


NXTCH 




STA 


,X+ 




CMPA 


ISP ACE 




BLS 


DOGOT1 




DECB 






BNE 


DOGOTD 




CLR 


,x 


DOGOT1 


1£AX 


LABEL, PCR 


FNDIAB 


STX 


LABPTR, PCR 




LDA 


ECHOFL, PCR 




STA 


SAVECH, PCR 




CLR 


ECHOFL, PCR 




INC 


GOTOFL, PCR 




LEAX 


DOTCB.PCR 




IDA 


IMRWHD 




STA 


F FUNC.X 




JSR 


FMS 



SET GOTO FIAG TO DISABLE PARAMS 
CLEAR BYPASS 'IF' IEVEL 
READ NF.XT COt*IAND LINE 

IF 'IF' 

THEN INCREMENT BYPASS 'IF' LEVEL 
CONTINUE UNTIL 'ENDIF' 

DECREMENT BYPASS 'IF' LEVEL 
CONTINUE IF >- 
CLEAR GOTO FLAG 
RESTORE ECHO STATUS 

DECREMENT 'IF' NESTING LEVEL 



IF 'IF' NESTING LEVEL <> 

THEN DECREMENT 'IF' NESTING IEVEL 

ELSE REPORT MISSING 'IF' MESSAGE 



MOVE LABEL TO LABEL BUFFER 



SAVE IABEL POINTER 
SAVE CURRENT ECHO FLAG 

TURN ECHO OFF 
SET GOTO FLAG 
REWIND TO START OF COMMAND 



FII£ 




CONTACTS 

Sob Anundson 

B8open Consortium. Ltd. 

<S03>6&2-57*)3 

cWOPEN CONSORTIUM PROMOTES OPEN STANDARDS 

FOR MOTOROLA 8W0O RISC MICROPROCESSOR; 

DEMONSTRATES "NEW WAV OF DOING BUSINESS" 



Ihe 88opcn Consortium ii a groupof leading tariwoiT uid software vendor*, formally 
chartered to Apnl 1988 to establish and («w»it ihe industry- *ide adoption of open 
cuManb tor pioducts using the Mmorola 8 WOO RISC (Reduced tnstnaziart Sei 
Computing) microprocessor arcraaxturc The rncrnhcxs of SSopen are leading the way id a 
new way of doing business in Die computer iMuicy — ocmonsrjanng thai vendors who 
c ompe t e vn"orous|y against ooe anmhr. in ihe marketplace can benefit from dedicating 
reaaurccs to a coopuaove effon id achieve mutuaj success. 



Early Success: The 8*000 Binary Compatibility Standard 
Only three months after bdng formaDy chartered, the Contoroum published the Trial Uir 
Stanaord dorun^nt for the 88000 Binary Compatibility Standard (BCS) Vk first BCS 
puWiihed for any RISC rnjcroproExasr. this standard wtll allow software written id its 
specifications id run on any BCS-omipUani 88000-bascd system 

Ihe 88000 BCS is evmpatibJt with si>ch widely rsaocpted industry standards as POSIX. 
XJOpen • and ihe AT&T UNIX System tntetfaee Definition. It supports 90 percent of ihe 
spctifkarioAS developed for the propmed Mouaola 68000 BCS. simplifying ihe portability 
of applications from one ucht<Ecruic to the other. In addition* the 88000 BCS u 
UTipknxnicd ai the iystctn call tcweLuid is therefore applicable to any varum of ihe UNIX 
operating syjtcm or to a non-UNIX opera dng system. 



The 88open Mission 

The raiswai of tbe88open Consortium reflects in* .ocottkmi belief of us membership thai 
the Motorola B8000 tiucmpraEesaor RISC architecture offers a superior platform Tor the 
ocveioprneni of cnrnpuier tystents and software. The timely nnplemertiaaori of wandards 
for hardware and software interfaces to the 88000. prior to ihe development of a substantial 
body of systems and software, wilt achieve clear benefit;! for both vendors and users of 
88000- based products. 

The existence of standards will rtrinee the complcjury and cosi of developing opcrtiing 
systems, compilers, applications software, and peripheral hardwire, Moracrver, having 
invcued once in designing for a standard environment, vendors can then invest mote of 
their devcloptncrii rcsourco in improving and differentiating their pioduci*. The elaborate 
parang activities typically needed to move software from one vendor's system to mother's 
will be virtually eliminated. The resulting cost savings will benefit vendors and users alike. 

B8opcn welcomes participation in its standanis setting activities from all interested parties, 
including ihe academic and user communities. All standards developed by (lie Consortium 
will be shared openly and equally. 8*open members will autornatkally receive copfes of 
iiAodard* related documents, and non-members may receive them for a nominal fee. 

Thenxmbasof the Cartwrtivm believe product development based on standard* wtll 
accelerate market acceptance of the 88000 through carker availability of a broader selection 
ofinoov&ovt systems and software at rca&MAbk pnecs Customers a* well as vendors 
will be more willing id invest in produces based on open standards if they arc confident of 
not being penalized for early aartrretmeni to a young technology 

The 88open Charter 

The Iftoprft Gsfliofli urn charter aims to bting about the market siioctis of the 88000 RISC 
archjfcxaure through a variety of programs, beginning wiih educational and marketing 
activities ioprw™« the 88000 product family as the noa complete and viable RISC 
processor platform available to the market 

As a pan of tit mission to develop open standards and encmirege their use, the Qnsortium 
wdlpamcipateuisiandarD^Kiting activities woriflwiifc, whenn^approonaic The 
Cunsoroum also will speak as a coUectivc voice to influence future development of the 
88000 product fami ly 

Ihe Conowoum may negotiate wiih hardware and software vendors to produce 8 8000- 
rebued products for ihe benefit of &8open members In addiboa. ntonbasmay coocer»ie 
» develop pmdicts that meet mutual needs, through coUabnraut*) berween rnernbm or 
through march and development sponsored by the Consortium. It is expected that 
Consortium members will benefit from more favorable acerat to such products. 



The 88000 BCS is a subset of the proposed AT AT application biliary utierfaac ( Afil). a 
n^inr cnrnplete interface standard that will even uilly specify extension ftaniroiucb as 
ihamd librtiysupoor.netwcirlt interlace and the "look and feel" of the windowing systrrn. 
ATAT has indicated informally Us intention to use the 88000 BCS as the basis for an 
88000 A8I. 

Ihe 88opcn Consortium will work wiih ATAT to complete the B8000 ABL and will 
continue to develop certification vols to verify thai application programs conform to the 
BCS standard. 

The 88000 BCS exemplifies ihe manner in which smicpc cooperation among enlightened 
compan ies can yield substantive benefits, not only to the direct participants, but also to 
vendors and customers iluoughcui the industry There is no dotibt that ihe establisfcrrmi 
of this standard so near the incoducuoo of the 88000 architecture will radUlate lis tnpid 
acceptance and muovaie a vonciy of developers, to exploit its powerful capabilities. 

Organization 

1 he OMKoruurn ts ayjaao^ ast not -for-profit me m b er onjanuai>on It is governed by a 
Board of Directors representing member ce>mpan>cs. w uh three directors from hardware 
vendors, two from software vrrvtivs, one from the academic awamiioicy, one from ibe 
roonbtfsrup at large, and one frotn Motorola. 

Day-to-cUy operations am run by a full time executive director, who also serves on the 
Board of Directors, Bob Anundson, formerly of Tektronix. Inc.. is executive director He 
is assisted by a small staff. 

The work of toe Consortium is carried do through member volunteer c**nroanccs_ Die 
Technical Committee is charged with proposing and developi ng definitions, standards and 
extensions relating to the use of the 88000 architecture and tat use in hardware and 
software; this commiow pioduced the B8D00 BCS. 

Ihe Business Committee deals with business issues relabng to the Cceoontum. and has 
broad ■caponsibiliry for the promotion of the 88000 product family in the ma/kCTptaoc. The 
Wot Id Strategies Committee will focus on i he extension of the CctisssrtiunTs activities and 

irifl ik nee worldwide. 88open Consortium offices and siarTarc pla/iiicd f« Europe and the 
Pacific Rim 

Corpora te numbers have full voting r ghls, and thus participate in setting ihe goals and 
ecserreining ihe activities of the Coniortium. Non 'vocbg meoihenhjps ore otTeredto 
indivxtuals and non-profii orsjsnizations who are inmrsted at the goal j of the CtmsorouiiL 

for mere information, contact BBopcn Consoroum. Ltd.. 8560 SW Salish Lane. Suite 500, 
Wilsonvilte, Oregon 97070; telephone (503) 68Z-5703. 



68 M cro Journal 



April 89 



53 



Juttae nmrwwy-Ampiiib 
Iw|um* Prwmawa, lac 
U0frt1»4M 

FOR OAMEDIATE R£LCA5£: 



Bob Aa&odrnj 



(xajsawros 



I -Data General 



riu^bu 



Language Processor*., lac. Announce* Compiler 
Product* far Metorele 83000 RISC Architecture 

C— »jH— Tea* Fore* L>ft**a Scrt»*r* t>n'ilnji— t 



, Fpbmarr II, I WW - Laiunue* Pnxeewm. lar |UPfJ today 



Upon Receipt 
Andrew Hettinger 
(408) 898-4060 



Hfttut product* for Mm Motorola MQOO RISC aftbiuwlu.'* u4 tfeal it feat )«intd lb* gftopm 
CoaaortLaei Lid Sohwar* UlUaUV* Proff eat Tb* ta r n w ia ^ i n agi *«* mad* *i a am 
«0or*fftn bald by avopas *ad attepdvd by bom that) Ift ia^pwdni aoflwani vaadent 
eonmEti«J La tb< mm rlaodard, LPI bu baan « matabar of lb* iftepan CaeanAium dac« June 
L08* Slsce Jttlrtl* 19W.Swv« W Wrloia/i. Sank* VW Pmidnt o* Ratetrtb wd 
0«««k>p(B€Bt At LPI. baa bald a poslUoe. da tb* Wop*» Bovd of Director*. 

Uacuift Prmmmt*. let- » pot tJM iu> Faaut* of Coaa4l*r* to Lb* HOW FLE5C *KbJt*rtur*. 
Tha LPI Faally of Co»ptlere lactase* BASIC. C, COBOL, FORTRAN, PjacaL, PL/], and 
RFC D pro*/ aa mi a* limpiNpa Amo iwledad » CadaWateb. u laiarertw, w(«-li«l 
dtbuffff , Tb*a» ptodtKu as* np*cud to b« retaaead u> tha anad «vert*r 9/ (BCT. 
Tba Softsar* (aftiaitv* ww forovd la Au|WI IflSf te pOKftOt* lb* dW*kfpm*Bt of aoftau* f«* 
^>* **«» Klx' arcbmaamal Re" mpM ;?"-*< Ml ftfaVAj ;*.v aliMnM rm |M Bttt MHb1 
10 • portiaa lab, HOOD *>**b>pB**t fcardman. wad ra*ra*tiai and UtbAkral tappatt frofe lb* 
bespat CoavTUsn. Depot SoAwas* laUUtl** aponaw* jotted* t>*U Gra«*ai. Dotpbtp 
Cm^w. a wbaUisry of Nefab D«U. UofafMt, NCR. Opaa SrvWen and Saoyo/koo. 
laLM-malioaai 

*W# hav* aaaa •'•riin| ajf Mill) *ith ia4*o*f>d*fii aoftwan hbiWi ta niuN th»l 
asalica-Uwi «UI b* iataudiaidy a*atlabM f*r MOOO-baaae ayatsa*.* Mid Bab A*ynd*oa, 
Eiacalin Dirariot of ib* M a f ia Goaanrtiua *Tb* >u<rraa* add moBMLun of lb* pracrast m 
du*tu> fmiavas to tb* ftoviaj aoaaatu* far tb* MoLoreU MOOC arcbitactvn-* 

LPl'i cacaptlan a*d mfttiM tool* in bales d —tlopad 10 ba aompliaat wlcb Oopa'a Blsur 
Comp*UoUi(y fiUoda^d (&C81- Tb* BGfi bat baaa tdopcad at put of ttc ATftT AppttcaUaa 
Riuir Icttrfact (AB41. tt b capwiad tbai BC8 aompllaat toftwait artll i&u«aav rrrtcuu for 
tefivara dwttoptrt aod prevldt tad umu witb ifavlnh-wrapptd aoftwan toIutioAt for aU 8800O. 



•LPI «UI ba tbfl Ant laA4ua(« vondofa 14 taaka arailablo an cotirv Utaiif of iatc(FBl«l toKw* 
dmlapaMBi lAolt \at lb* bMorolt MOOO RISC tDtuMiMt. 1 tutat Roy A, Fbutay, PraaidaBi 
of LPL "Tbtaa iaoit will flv* tbt and uatr taa ability to artabiadk fovras toftwart appJicaUoat 
ob lb* nOQO aKbiiKtar* 4 ■> •*!( aa 4*ntap aaw oaaa Tbia abowa LPI< coairailDwat to Mopaa 
aad o«r btab wpwlttwat of iba b a aitaai oppottaaiUat ttao<V t1 «d *ifc» MiwnU't WOW RiSC 



Lit, a j n im m af aaalHr toftwata drr t lopa n at toobv off*** a ML nil* of JJ-btt | 
Uaniaaa*. 1^1^*4 BASIC, C. COBOL. FORTRAN, PASCAL. PL/L Ri*G 0, and u 
bjtBBfilr** a*aw*.W*at dihuajar. GoaaWaKb Tbaat aoflvar* pradtttta an praamlly aff*n4 an 
ladaattr-Maadard tytvma aacb at Mataaala a MUtO, WE130M. wd tntalt MOM maaiac 
UNO*. X£NDC*, aad MS-D09* apatatia, trtitaa 

H^daaartand I* PrtaabgHtra. Maatacauaatta, LPI it a na/kat Uadar io qoably |4ojuaa> 
ronpiW* a»d toftaaM daYalopnaant Uwla. Siaet iU tauptLai is 1M0, LPl'tiMbteU^cd 
aa*aalat* bat auraclad m^ot tuHowm* i»c|gdinf «nnpui*r uuiufw^^f*, Fartun* VOO 
FompaDtaa, tb* fadaral jd T iM a H, kpplkattoa aoflwif* davalopara, ud a k»i hat of dcMnaatw 
atd uiiaroaiacxLal aoftvara diHrtbwl«wv 



DATA GKNSAAL UNVCXLS riRST 1NDVSTRY STANDARD 
FAMILY OP RISC-BASED SYSTEMS 



SAN FHAHC1SCO, Pab. 28, 19A9 -- Data General today 
unvallad tha flrat ajaaab*ra of ita n«i* faailiy of products 
baaad on tho Motorola 88000 architecture. The ennounceaenta 
include; a really of hlgh-perforaence, VKE-bssed syatMfl that 
function aa aervers or auiti-utar ayateaia for comarclei and 
technical appi lcationa; a new faally of desktop pereonet 
worketatlona; and 00/uX 4.1. tha lnduetry's only version or 
UNIX aupportlng e full RISC-beeed faally of eyeteaa. 

The BBOOO-baaad faally eetabllahee lnduetry-leedlng 
prlce/perfoxeanca atandarda for RISC-based syeteae. The 
eyeteaa perform at 20 or 40 MIPS or greater end tho 
worketatlona perform at 17 or 20 MIPS or greater, beeed on 
Dhryetone aeaaureaente. 

'Today'a announceaent aetebllehae Date General aa the 
Induetry'e leader in coet-ef fectlve. dletrlbuted ooaputlng 
■yitflan. Data General *e eaperlence In building large, 
wall-balanced, high-throughput ayateaia glvea our eaerglng 
faally of 88000- baead product* a aejor advantage over elaller 
aachinee from workstation and PC vendors. Thie experience 
hee enebled Deta C«cw»rel to deeign aiachlnea apeclflcally for 
the newly emerging atylaa of computing euch as the 
Cllent/aarver model.' eeld Herb Oeher. division director of 
product marketing. 



"Todey we ere Introducing the flrat an abara of a 
binary-compatible feally of products thet ere feeter, lata 
coat lv end more flexible than any other eyeteaa on the 
market. for the price of todey'e pereonel coaputere, the 
BBOOO-beeed worketetlon dellvare tha performance of a 
aid-range workstation. TTtm 8 8000 -baaed eyeten la not a 
heedleee worketetlon or e repeckeged alnlooaputer , it le 
designed with eophietlceted 1/0 and large cepeclty etorege to 
eupport a large number of ASCII terminate, networked X-Wlndow 
grephlce tarmlnela end worketetlone. " 

The powerful, mldrenge BBOOO-baaad eyetem le available 
with one or two proceeeore. By ewepplng the CPU board the 
user cen upgrede fraei s elngle to s duel procaaeor, neerly 
doubling CPU performance. The ayetem le evallable In 
deekelde end 14-lnch-hlgh. MEMA-Standard reckmount verelona. 
Both ayetaaa Include e ten-alot. induatry-etandard 
VMB-compatlble chssele, up to 208 MB of error-correcting code) 
■aeorv end cartridge end reel-to-reel tepe options. Tha 
deskside verelon Includee up to 2 glgebytee of ■•■■ etorege 
end the reckmount verelon contelna up to 16 glgebytee of meee 
etorege through duel-ported B-lnch SMD dieka. 

induatry-etandard wide and local aree ccaaain lcetlona ere 
provided by eyncKronoua contrnllera (VSC/A) end tha vme bue 
Ethernet controller [VIC). Up to 512 RS-232 esynchronove 
ccavxectlona are handled by terminal eervicee hoet edepter 
boerde (VTJA/128) which connect up to 128 eaynchxtmoua devices 
vie clueter controller boxes. 

The worketetlone can support from 4 to 28 MB ef memory 
In a 2-1/Z-lnch-hlgh pedeetel encioeure. The worketetlone 
use e elngle multilayer board containing a Motorola 88100 CPU 
end FPU, two Motorola 88200 CMMUe (Cache and Memory 
Management Unite), and monochrome or color grephlce hardware 
co-proceeaors. Interfaces for e PC/AT keyboerd. e 
three-button optlcel eouee, e SCSI port, a parallel port, a 
aerlel port and 802.3 Ethernet are atandard. 



54 



April '89 



66 Micro Journal 



The •ooochrowo workatationo uit tho NSC UP072120 
Advanced Graphic* (Hep ley Controller. Tho eight-plane color 
unit, based on a custom graphics coprocaaaor can display 256 
alnulteneoue colore fro* a peiette of 16.7 allllon colore. 
The 20-inch monochrome end 19-lnch color flicker-free 
■ooltora operete et K)Kz end deliver 1280*1024 pine! 
raeolutlon. 

SCSI peripheral enpenelon for tho dlakleaa workatatlone 
la via compact deekeop housings. Up to three of theae 
housings can be aonnacted to a workstation. Porlpherel 
options lncludo e 160-H8 or 322-HD S-l/4-lnch full-height 
UincAester disks, a 15D-MB quarter-Inch cartridge (QIC) tspn 
drive end 5-1/4-inch or 3.5-lnch floppy drive. 

UG/UX 4.1 la an enhanced version of Data General's 
coraerclsl-grsds dc/UX 4.0 UNIX operetlng eyetea end le 
dealgned to take full edventege of the Kotorols BB000 RISC 
architecture. DO/UK 4.1 lncorporetea the major featuraa 
found In UNIX ayeteaa with today'a doainent UNIX atanderde. 

"DC/ux 4.1. Date Generel'e UNIX operating ayetea with 
advenced symmetric ami tlprocssslng, eneblee tho BflOOO-bssod 
system to deliver cost-effective computing end Modular growth 
while protecting Investments tn eppllcetlon software end 
peripherals, " ssld Oehor. "OG/UX 4.1 conforms to the BBopen 
Binary Compatibility Standard allowing cuetontere to run all 
BCS-coajpliant aoftwere developed on 08000 -based systems from 
any vendor. Application develop* re can uae Data General's 
oq/ux 4.1 on ell these aysteae to produce ehrlnk-wreppad 
software for the entire BB000 aarketplece. " 

JMICR&NICS 

^^""^ RESEARCH CORP. 



Microcomputer! • Hard* arc and Software 
CtMIX* Sale*. ServKcandSuppon 



11 Feb 1989 



Dear Don, 

Just two typos to report in the February 'logically 
Speaking' - both mine. 

Page 19, 6th line up from bottom - should read 

"making* 

Page 22, para 6, line 3, should read "internal-01 

doesn't consistently line up . ..", JOT "intemal-23" 

Now that I've got just over 2 years of programing in 
68000 Assembler under my belt, I can see what a 
tetrible price we have to pay by writing in position- 
independent code. I feel that programs such aa my 
KBASIC would execute at last 2 to 3 tiroes as fast if 
there were only a special version of SK*D0S dedicated 
to the single end-user (no multi-tasking or multi-user 
stuff in the works) , eosething like the old 6809 FLEX. 
With RAHDISK at the top of cBnory, and a fixed Load- 
Address for applications programs, we could really 
blast along] 

Itie Load-Address could be set high enough (say $10000) 
to allow for future improvements to SK*nos. Ah, if 
only this could be so . . . I'd gladly take tbe time to 
re-write RBASIC for such a set-up, and still keep up 
with the present version to run under a future multi- 
whatsit SK*CQSU Bow about it, Pete? (Stark, that is) 

Maybe readers who program in 68000 Assembler would be 
interested in learning of the many snags which lie in 
wait for the unwary, and some of tbe procedures I've 
evolved to make a programmer's life a little easier! 
I«t me know! 1 



Don Willisas, 

68 Micro Journal, 

5900 Cassandra asith Road, 

aixson, W 37343 



Sincerely, 

u 

R. Jones 

President 



DG/UX 4.1 la e full PQS I X implementation, compatible 
with Syate* V Interface Definition laaua 2 <SVID2) and 
Berkeley Software Dletrlbution (BSD) 4.2. DG/UX offere the 
beneflte of eny etandard UNIX ayatea while providing unique, 
application- transparent capabilities auch aa fully symmetric 
multiprocessing eupcort; e robuat. flexible file eyetea.' an 
enhanced scheduler end extended error reporting. it also 
supports TCP/IP comnunlcetlona so f Were, NFS 4.0 end 
X-Wlndowe Verelon 11 Releeaa 3. 

DG/UX 4.1 fully implements the BSopan Binary 
Coepatiblllty Standerd. "*» a founding member of BBopen Date 
General haa actively participated In the BSopan Software 
Initiative program dealgned to eupply eoftware for 
BBOOO-beecd eyetaata, " addod Oeher. The BBopen le a 
non-profit consortiua of companies that aanufecture, develop, 
eell or uae products beeed on Motorola's BB000 RISC 
architecture, 

CROSS ASSEMBLERS 

The CSC Cross Assemblers arc actually a set of table- 
driven assemblers for several different microprocessors, 
currently including 1802/5. 6800/1/11/6303, 6804. 6805. 
6809. 6502/3/65C02. 8080/5, 8048. 8051, Z-8. Z-80. with 
others being added occasionally. Separate 68010 and 32000 
cross-assemblers are also available for the same price. A 
macro preprocessor is included with any purchase of cross- 
assemblers. 

In addition to the basic ability to recognize the target 
computer's assembly language and to process symbolic 
address expressions, the cross-assemblers have the ability to 
support structured assembly programming, the ability to 
define conditional assembly directive expressions, and the 
ability to assemble progiams stored in modular form. 

Since the Motorola 6801 instruction set forms a superset 
of the 6800, 6802, and 6808 instruction sets, and is the same 
as the 6803 instiuction set, the CSC 6801 Assembler is also 
capable of assembling programs written for all of those 
microprocessors. 

The CSC 6801 Assembler is also capable of assembling 
programs for the Hitachi 6303, as it recognizes the six extra 
instructions, and for the Motorola 68HC 1 1 , as it recognizes 
the extra instructions and addressing modes. 

The CSC 6809 assembler also recognizes 6800 and 6801 
mnemonics, generating code for ihem to closely simulate the 
register and memory changes caused by the instructions on 
the 6800 and 6801. 

The CSC 6805 Assembler is also capable of assembling 
programs written for the Motorola 146805 and 68HC05, as it 
recognizes the extra instructions implemented by those 
proeesscffs. 

CSC also offers simulators to assist in the debugging of 
object progiams 

destined for 6800/1, 6805, 6809. 6502, and Z-80 systems, on 
selected host systems only. 

The cross-assemblers, with printed manuals, binary 
utilities, and macro 

pre-processor, are available for a tetail price of $50 each $100 
for three, or all for $200. The C sources arc available for an 
additional $50 each, $100 for three, or $300 for all. The 
programs may beoideiad from the following address: 

Computer Systems Consultants, Inc. 
1454 Laua Lane, Conyers, CA 30207 
Telephone Number 404-483-4570/1717 



68 Micro Journal 



Ap«i| '89 



55 



Jim Howell 

5472 Playa Del Ray 

San Jose. Ca. 95123 

Dear Don. 

I have been using Introl C. ver- 
sion 1.5. for about three years on 
my OS-9 (tm Mlcroware) Level 2 
system (6809). and am quite 
pleased with it. It seems more 
bug-free than some of the MS- 
DOS C compilers. A few years 
ago. Dr. Dobb's Journal pointed 
out several bugs in various C 
compilers for MS-DOS. I tried all 
of these tests on the Introl C com- 
piler and found that it has none 
of these bugs. 1 have, however, 
found one bug and a "problem" in 
the Introl compiler. 

The bug occurs when a character 
(type "char") variable or expression 
is used as a subscript. In Listing l. 
"tabl" is an array of structures, and 
thecharactervariable "x" Is used as 
a subscript. For the last line of the 
listing, the code generated by the 
compiler multiplies the subscript 
"x" by the size of the structure (10 
bytes) to get the offset of the desired 
element of the array. In this ex- 
ample, the result will be 260 (deci- 
mal) or 0104 (hex). The high -order 
byte of this offset is then cleared 
(apparently because It is a "charac- 
ter" value!), resulting in 0004 (hex), 
or simply 4. Ihe offset is then 
added to the address of the start of 
the array in order to point at the 
desired element of the array. The 
result is four bytes from the start of 
the array, and not 260 as It should 
be. Slmilarbehavior will occur if an 
"int" (Integer) array is subscripted 
with a character variable or expres- 
sion whose value is 128 or more. 
This bug can be gotten around by 
usingan "int" as the subscript or by 
using a cast, such as: 

val = tabl((int) x].a: 

The "problem" mentioned in the 
first paragraph can be illustrated 
by considering the program 
"sample.c" (listing 2). To compile 



and link this program, one uses the 
commands: 

ice sample 
ilink sample 

This results in an executable mod- 
ule called "sample", on the same 
disk as the source file, in my sys- 
tem, this is usually disk "/dl". 1 
usually "load" a program first be- 
fore running it. as follows: 

load /d 1 /sample 
sample 

And now for the problem. When 
"sample" is run (the last line above), 
an access to the system disk is 
made before any output from 
"sample" occurs. After some inves- 
tigation. I discovered what Is hap- 
pening. 

When "sample", or any C program. 
Is run, It starts In a "start-up" rou- 
tine. This start-up routine does 
some initialization and set up. be- 
fore calling "main". One of the 
functions of this initialization is to 
put in initial values for external 
data, which is all variables declared 
outside of all C functions. External 
variables which were declared with 
initial values will have those values 
inserted at this 

time. All other external variables 
will be set to (zero). 

In order to set up the declared ini- 
tial values, the start-up code looks 
for a module whose name is the 
same as that of the executable 
module, with the characteis ".DAT" 
added at the end. For this example, 
it would look for a module named 
"sample.DAT". This module, if it 
exists, is assumed to contain a 
table of initial values and where in 
the data area to put them. 

First, the "link" system call is used, 
to see if the module is already in 
memory. If this call fails, the "load" 
system call is used, to look for the 
module in the commands directory. 
This is the disk access which 1 
would like to avoid. If the "load" 



fails, too. then plugging initial val- 
ues Is skipped. Then "main" is 
called, which in this case prints a 
message. 

This scheme works fine for pro- 
grams that declare one or more 
initial values. In this case, the 
module sample.DAT (or whatever 
the name happens to be) is part of 
the executable file "sample". That 
is. if "sample.c" had contained one 
or more variables with an initial 
value, the file "sample" would con- 
tain an executable module called 
"sample" followed by the data 
module "sample.DAT". The "link" 
system call in the start-up code 
would succeed and no extraneous 
disk access occurs. 

In the example, however, no initial 
values are given and the module 
"sample.DAT is NOT part of the file 
"sample". In fact. "sample.DAT" is 
not created anywhere. 

An easy "fix" would be to declare an 
initial value for some (external) 
variable. However. I preferred a 
solution that did not require an 
extra module, so I came up with the 
solution In Listing 3. The added 
function "fixload" patches the 
startup code to skip the attempt to 
load the module from the com- 
mands directory. It does this by 
looking at the function "cprep". the 
function in the introl llbraiy that 
looks for the data module. The first 
two tests in "fixload" check to see if 
the module has already been 
patched. The rest of the tests verify 
that the code being patched is really 
the intended code. If all of the tests 
succeed, a branch instruction is 
inserted. Thlsbranches around the 
attempt to "load" the data module. 

With this fix. the program still looks 
for the module "sample.DAT" on 
disk the first time it is run. since the 
startup code is executed before 
"main" is called. After that, as long 
as the in-memory copy of the pro- 
gram is run. the extraneous disk 
access does not occur. To make the 
change more permanent. SAVE the 



66 



April '69 



68 Micro Journal 



program (alter running It at least once) and 
use VERIFY to correct the CRC. Then use 
ATTR on the corrected module to make It ex- 
ecutable. 

Note that the values used In "flxload" apply to 
the partlcularverslon of the Introl C Compiler 
that I have, and may or may not be correct for 
other versions. 

The solution I have described is adequate for 
my use. but It requires ihe addition of code 
(the function "flxload") to most of the C pro- 
grams that I write for OS-9. A more elegant 
solution would be to write a separate program 
that patches the disk copy of the module 
directly (and updates the CRC). 



Listing 1 

Shows bug in Version 1.5 

of Introl C Compiler. 



struct 




int 


a; 


lnt 


b; 


int 


c; 


lnt 


d; 


lnt 


e; 


) tabl [30]; 


main () 




lnt 


val; 


cha 


r x; 


x - 


26; 


val 


- tabl [x] .a 



) 



The compiler generates the 
following assembly output. 
The "elra" instruction should not be there. 



tabl comm 


loc 




300 





_main: leas 


ldb 




-3,s 


126 


stb 


Ida 




2,3 


110 


mul 


clra 










leax 




tabl, 


y 




ldd 






d, x 




std 






0.3 




leas 






3,3 




rts 










end 








Listing 2 










/* sample 


.c 


06/09/88 


V 


ma i n ( ) { 










printf ("This Is 


a 


sample 


program\n") ; 


) 











TRANSLATE 6809 



TO 68020 



A service to provide a raw translation of 
6809 assembler to 68000 or 68020 

Cut 50% or more off hand translation time 
Converts to 68000 or 68020 assembler 
Old code may be included in comments 
Special conversion of psh andpul to movem 
All 6809 addressing modes supported 
Choice of register assignments and sizes 
Upper to lower case conversion included 
In-line warnings for likely problems 

Don't pitch It - translate It 



Call or fax fot example listings and farther information. 

Call (or informs tloo on OS-9 consultancy aervkes, dlak 

cacnlng, graphic*, word proceoon, languages and file """"\p"* 

'OS-? Is a Trademark of Microware Inc. 



n n ; 

__| Windsor Systems L 



340T Unw (On Lana, LeuMO*. KV 40223 U.&A 
» »( * c» w : (SCO) 420 8000 Fax: (Mq 42S 3844 



Listing 3 

/• sample. c 06/09/88 •/ 

/* with the function "loadskip" •/ 

main!) ( 

fixloadO; 

print f ["This is a sample pro<iram\n") ; 

) 



loadskip.c 06/13/86 15:35 
This routine patches "cprep" so that it will not 
look on the disk for <module>-DAT when the program 
starts . 



int 


cprep [) ; 














fix 


load!) ( 
char *p; 
















p ■ (char *) 


scprep; 












if(pI58l « 


x6< 


it p[57J — 


Jx3( 






" p[53) 


— 


0x10 


It 


Pl54] 


— 


0x26 




" p(55) 


— 


0x00 


u 


P(56] 


— 


0x16 




it p|75) 


=- 


0x10 


it 


P(76] 


= • 


0x27) 




p|S7) 


> 


0x20, 












P(58] 
) 


m 


0x10, 











60Mcro Journal 



April 69 



57 



Q Classifieds ^^^^ sue***,*™ j 

Surplus Unused Motorola VME Modules & Electronic Solutions Enclosures for Sale at Discount 

MVME133 CPU Module-68020, 1MB DRAM, 68881 FPP, $675 

3 serial Pons, EPROM Sockeis, VMEbus Interface 
MVME225-I 1MB DRAM Module, A32/D32 VMEbus Inierface $380 

MVME320A Winchester/ Fllopy Controller $490 

MVME332 8 Channel intelligent Serial Communications Module $675 

Series 7 Electronic Solutions 7 Slot Desktop Enclosure, P1/P2 $695 

Backplane, 325W PS, Space for Winchester/Floppy/Tape 
Respond to: John Gannon, RPG. P.O. Box CI 2399, Ste 162, Scottsdale. Arizona 85267 Phone (602) 951- 

3373 

*** 

S+ Memory Cards, CPU Cards. Hard Disks w/Controller Cards, I/O Cards, Cabinets, Power Supplies. 
S/09 CPU Cards, Memory, I/O Cards, Controller Cards. Cabinets, Power Supplies 
3-Dual 8" drive enclosure with power supply. New in box. $125 each. 
5-Siemens 8" Disk Drive, $100 each. 

Tom (615) 842-4600 M-F 9AM to 5PM EST 

*** 

(JMX-20 with 68881 Unillex, utility pgmsand C; 16 MHZ. This month only $1900. Unused. 
Marc Tailsman MD, 30818 S Coast Hwy, S Laguna, CA 92677, MSG: 714 499 1877 



UBiMSfaBfBjgMBiBjgraEEEMaMotgjgjgfgjiifi^ia^^ 



|T« 



f| 1 1 1 X /S K -IIOS />! S-IIOS 

Transfer Utilities 

For 68XXX and C0C0* OS-9™ Systems 

Now READ - WRITE - DIR - DUMP - EXPLORE 
FLEX, SK-DOS & MS-DOS Disk 

These Utilities come with a rich set of options allowing the 
transfer of text type files from/to FLEX & MS-DOS disks. 

*CoCo systems require the D.P. Johnson SDISK utilities and OS-9 and two 
drives of which one must be a "host" floppy. 
CoCo Version: $69.95 68XXX Version $99.95 



S.E. Media 



PO Box 849. Hixson.TN 37343 



(615)842-4601 Telex 5106006630 FAX (615)842.7990 




BUEjaiErBGJgjgffljEiarBBBEjfflEjaa^ 



58 April 89 68 Mao Joumal 



r 



■\ 



SK*DOS768K 

Read the fine print to see what's in SK*DOS/68K: 



Full DOS documentation plus on-line helpO Multiple directories 
O User-installable device driven D Install up to 8 different I/O 
devices O Keyboard type-ahead D Print-screen D Virtual (RAM) 
disk O Disk cache D Up to 10 dtivts □ SW or 3H* floppy diives G 
Hard drives to 64 megabytes each O I/O redirection to drives or I/O 
O Time/date stamping Of files O File or disk write protect (even 
hard disk) Q Batch Tiles O Support for 68000, 68010. 68020 □ 
Monochrome or color vidao board support O Read and wiite MS- 
DOS disk files □ 6809 Emulator □ Powerful utilities such as copy-by- 
date, undelete, show differences between fiiles, prompted delete, tent 
fie browse, and more - all included O Simple Basic included O Fast 
assembler included O Line editor included O User support via 
newsletter and BBS O Available software; C compiler, full Basic, 
screen editors, disassemblers, cross-assemblers, spelling checker, text 
formatter, music editor, hard disk manager, ROM-based debugger, 
modem communications programs, etc. More compilers coming, O 
(Some features may not be implemented in all hardware manufac- 
turers' implementations.) 

Individual copies of SK*DOS/6SK are $140; less in 
quantity or when bundled with hardware. Send 
Jor our 6809 / 68K hardware and software 
catalog. Also available as part of 
hardware/software educational course. 



our 



f"_ ■ \J Software Systems Corp. 

VT A P . K p - ° Box 209J 

^l"l\ IN Mt Kisco, NY 10549 

(914)241-0287 

BBS (914) 24 1-3)07 Fax (914) 241-8607 



OS-9.m SOFTWARE 

FORTH09 A Foith-83 system lor OS-9. many exciting fea- 
tures, integrated wel into OS-9 environment Allows you to easily 
save executable program modules written in Forth (See t)» 
FORTH column in this magazine.) $150.00 
Manual only with credit toward later software purchase.. $25.00 
FORTH09 for OS-8768000 win be released soon! Inquire! 

MSF MS-DOS File Manager module used with SDISK3 driver to get 
complete transfer capabilities to/lrom MS-DOS disks (360K and 
720K formats inducing 3.5*) For CoCo-3. REQUIRES SDISK3 
MSF alone $45.00 with SDISK3 included . $65.00 
SDISK3 replacement floppy "driver" lor tlte COCO-3 w/OS 9 L2. 
Supports all OS-9 formats, plus required by transfer programs to 
access non-OS-9 lormats. $29.95 

L1 UTILITY PAK The most extensive and useful utility package 
for either Level 1 or 2 OS-9. 40 programs, usable with any OS-9 
system. Includes MACGEN command language compiler. $49.95 
L2 UTILITY PAK More utilities, mostly for Level 2. Includes 
COCO specific software Ram Disk driver and error driver, others 
are non-system dependent. $39.95 
L1+L2 COMBINATION Both together for.. $75.00 
Diskettes are 5.25* Color Computer OS-9 Format unless requested 
otherwise All orders must be prepaid or COD. VISA/MC accept- 
ed. Add shipping, $2 00 min (S3 00 for FORTH09) 
Order from! 

D. P. Johnson, 7655 SW Cedarcrost St., 
Portland, OR 97223 (503) 244-8152 

OS-4 I* a trademark or Miooarara and Miami* Inc. 
MS-OOStoamdamarkalMtoTauA mc 
FORTMDS It a IrarfarraA <t OPMtmn 



SOFTWARK 



«8000 C CROSS-COMPILER 

SltC . SKOOSMSIX}5,l>NlX,XKHll IO»JI\CT OSI.1t 
Acftpv Kak C IM6MJC. ffl»erilc*6a00Ou»<>^ ode 
l*bda«g0l0cnarancn>bkr.kfejvfc> gn»*al l*r SKUOS.ba m»y he modified 

CROSS-ASSKMUI.KRS WITH MACRO CAPABILITIES 

km ii ti6.n.t;x,Oii.vnin.KX.usuos.i'Mi<.Ki>os.xMix mtaa m.uum 

Sprtilr IKM. »«n. MOI/I I, MW4.M05, MOT. M. JM. W «. (Ml. KOK5. (>80 10. 3?000 
UtUtf noH uacaiMcn in C. with kodThriki** uuliuet Sounxt for «u moral SWearb.JIUOfor 
J, iy» tin ill 

CMOUKM TELECOMMUNICATIONS PROGRAM 

siM-nzooi,sKnoi.iwn*itm>si.xKNix.vmw:x otJKcr-Oxi.r kacii jjs 

Mnni«iicn •>■ nmiMl rnnk. I>k mtfei. MOW Ml. XcK Xl*> m 

SUPER SLEUTH DISASSEMBLERS 

e»c« tntir.x inmst iitt-vwrtm oairn-axtf k*cw t$o fir.xait.coco 

barms tflrfnEnttioarce on dM* **h1j|**v mfcidfiirrl. tajr> edVtMf 
Srm.it riaro u.i.m.wmm mn m ucvnin m™ 

COCDOO5^»V*tr»M00.UJ.5.1.ft«a! an. (uUM«l.ll~l) 
Uatt «ccu» tIMtLtX.OSMlNIFLEX.MSOOS.IINIX-SliDOS. XENIX 

DEBUGGING SIMULATORS FOR POPULAR 6. BIT CPUS 

nm vt-rtxt inmost uhwfui oijscr-osir hih u**coco run. coco <st 

tmrmutfl* nrriitiir pmrwrv .ithidn dnawhtt I.Tmidjnf , himry nlat 

SfxityUm rJ0iyi.<u»*».«»i.<*>9OS»o.!r. zjrjRix ml, 

ASSEMBLER CODE TRANSLATORS FOR 6S02, 6800/1. 6809 
uai »<an tn-TutxwJXist».VNtruu 
ami m um 4 mm wf-imd. tit-tiEi m~as* o**i hhwfuj 

FULI..SCREEN XBAStC PROGRAMS »«> nv rerun* 
AVAILABLE FOR FLEX, UNIFLEX, AND MSDOS 



Urrrafaf Oram** I Oorfl 



SMI WWC Hi 

llOOWUne. DO 

1100 •nwit. SUntau 

Tlfaeb Urn Spraditee HOOWtonc. 5M »Mro 

DISK AND XBASIC UTILITY PROGRAM LIBRARY 

SU-FIS1 litVNtriJLXWSBOS 

Ed4 drtt Melon. ion drrotlcrf.mavmfinwia* acting, da dnk sou. ns^mDtmncorall 
BASIC puv«l. uri BASIC |ne«l. Mr mlUX wrantoncludcwnindnsquDKZvcoV 



PROFESSIONAL SERVICES 

FOR T W ¥. COMPUTING COMMUNITY 



CVSTOMtZEO PROGRAMMING 

We will cuttttniM my <4 (far fwtyw** dc*oitn*4 i 
■YBuliKd cu>u*n«Ei w Or to Ctr*a tarw *-n*-^-K*n 
ttpon \bt raarti-w^xiilfy «f the n**di/k ■.••m. 



I iha ■l^rrvafn-ra Hirobt bc-xKure ror 
the c harp for lisrJicxaarniutK-^ rfcycndi 



CONTRACT PROGRAMMING 

We wilicruic new p-rt-fiwdcaT modify ciuuof pn-*zra*au cm a tgnt-m taSw. >tctti» ** n*tc 

(Mbrtitd lora-fa twenty -pean; the t»w»T*L-w-ri en wtucb w* Hvt pt-rtt-nwil cnj-o-an fw*>raWfnt3j 

u-cJyrJc owop^auiu nvwfcto <rf n wi ff iPMney hk IxJaHa; ifiM, Qtwiaqp*, Um*-*ic. r4nacj-»«-J , nw-u 

popular r-tfmfcb of ra.nti»**«*w nxfualuti OCC. IBM. DC. HP, AT*T. tod otoa -x-fwl* 

bwd> trf mwrmmp***. .rx l*1,n f ftMCVl . 6*09. 2». tSOL MOtO. n 

Unfxjtpi ■*) onfflKHif it-V-mi. i» Lt-4rfni ra-afuiff m u 

wnjV ftrwrdf oDD-oAm: -be chwsc far ami puism hi » k»uOr bt i* to* or by ibe taii 

CONSULTING 

We aTTet ft -nde -i-^ 0/ rasTft-a*-*a« *a) «■. 
mfci t ftpd dfup* <-> hi* mp-c r-fb-rav-i 

tWtd ■**!****■ BUM. LTaT**fll ttU CS ( Tr**a*a*a*aV 



Computer Systems Consultants Inc. 

khiauk 

CW^x. Go|i 3CCDI 

IWHII^IO IWIII1I1I1 



ii«l M fc I- hJ m_ n« a ■ ^*. VQA *4 UUTtS CMP l| I Uil,.«fa.«<4 M <...Ml« 



68 Micro Journal 



AprH '89 



59 



Clearbrook Software Group (604) 853-911 8 



CSG IMS is THE full featured relation- 
al database manager for OS9/OSK. 
The comprehensive structured ap- 
plication language and B +Tree Index 
structures make CSG IMS the Ideal 
tool for file-intensive applications. 
CSG IMS lor C0C02/3 OS9 LI/2 (single user) $169.95 

CSG IMS lor 0S9 L2 or 68000 (multi user) $495.00 

CSG IMS demo with manual $30 




MSF - MSDos File Manager for CoCo 3/OS9 Level 2 
allows you to use MSDos disks directly under OS9. 

Requires CoCo 3, OS9 L2. SDISK3 driver $45.00 



SERINA - System Mode Debugger for OS9 L2 

allows you to trace execution of any system' module, 
set break points, assemble and disassemble code and 
examine and change memoiy. 

Requires CoCo3 or Glmlx II, OS9 L2 & 80 col. terminal $139.00 



ERINA - Symbolic User Mode Debugger for OS9 
lets you find bugs by displaying the machine state and 
Instuctlons being executed. Set break points, change 
memory, assemble and disassemble code. 

Requires 80 column display, OS9 L1/2 $69.00 



Shipping: N. America - $5, Overseas - $10 
Clearbrook Software Group P.O. Box 6000-499, Sumas, WA 98295 
OSS It * tradtmart of Mlcrovwa Syt lemi Corp.. MSDos It a Iradtmarfc of Microsoft Corp. 



SPECIAL 

ATARI™ 

& 

OS-9™ 



NOW! 

- If you have either the 

Atari 520 or 1040 - 

you can take advantage of the 

"bargain of a lifetime" 

OS-9 68K and BASIC 

all for the low, low price of: 

$150.00 

Call or Write 

S.E. /Wedia 

5900 Cassandra Smith Rd. 

Hixson, TNJ 37343 

615 842-4601 

FAX (615J842-7990 



r 



^\ 



ATARI & AMIGA 
CALL 

As most of you know, we are veiy sensitive to your 
wishes, as concerns the contents of these pages. One of 
the things that many of you have repeatedly written or 
called about is coverage for the Atari * Amiga"* series of 
68000 computers. 

Actually we haven't been too keen on those systems 
due to a lack of serious software. They were mainly 
expensive "game-toy" systems. However, recently we are 
seeing more and more honest-to-goodness serious soft- 
ware forthe Atari & Amiga machines. That makes a differ- 
ence. I feel that we are ready tostait someserious looking 
into a section for the Atari & Amiga computers. Especially 
so since OS-9 is now lunning on the Atari deview copy on 
the way for evaluation andiepoit to you) and rumored for 
the Amiga. Many of you are doing all kinds of interesting 
things on these systems. By sharing we all benefit. 

This I must stress - Input fi-om you on t be Atari 
& Amiga. As most of you are aware, we are a 
"contributor supported" magazine. That means 
that YOU have to do your part. Which Is the way it 
has been for over 10 years. We need articles, tech- 
nical, reviews of hardware and software, pro- 
gramming (all languages) and the many other fac- 
ets of support that we have pursued for these many 
years. Also I will need several to volunteer to do 
regular columns on the Atari & Amiga systems. 
Without constant input we can't make it ftyl So, if 
you do your part, we certainly will do ours. How 
about it, drop me a line or give me a phone call and 
I will get additional information right back to you. 
We need your input and support if this Is to succeed! 

DMW 



60 



April -89 



J 



66 Mcro Journal- 



THE 6800-6809 BOOKS 

..HEAR ye. HCAR 



OS-9" 
User Notes 



By: Peter Dibble 

The publishers of 68' Micro Journal are proud Co make 
available Che publication of Peter Dibbles 

OSS us« tores 

Information for the BCCOntCR Co the HO, 
regular or CoCo 0S9 

Dalng 059 

HELP. HINTS. PROBLEMS, REVIEWS. SUGGESTIONS, C0MP1AINTS, 

0S9 STANDARDS, Generating a New Bootstrap, BulJdlnR a 

new System Disk, 0S9 Users Croup, etc. 

Program loterfsclng to 0S9 
DEVICE DESCRIPTORS, DIRECTORIES. "FORKS*. PROTECTION 
"SUSPEND STATE", "I I PES", 'INPUT/OUTPl T SYSTEM", etc. 

Programing Languages 

Assembly Language Programs and Interfacing: Baslc09, C, 
Pascal, and Cobol reviews, programs, and uses; etc. 



Disks Include 
■o typing all the Source Listings to. Source Code and, 
where applicable, saaembled or compiled Operating 
Programs. The Source and the Discussions in che 
Columns can be uaed "as la", or as a "Starting Point* 
for developing your OWN nore powerful Programs. 
Programs sonetlnes use aultlple Languages such as a 
ahort Assembly Language Routine for reading a 
Dlreccory, which Is then "piped* to a Bsalc09 Routine 
for output formatting, etc. 



BOOK $9.95 

Typeset — w/ Source Listings 

(3-Hole Punched; 8 x 11) 

Deluxe Binder _._-_s5.50 



All Source Listings on Disk 




1-8" SS. SD Disk - 
2-5" SS. DO Disks 



- - $14.95 
- $24.95 



FLEX™ 
USER NOTES 

By: Ronald Anderson 

The publishers of 68 MICRO JOURNAL are proud to 
ke available the publication of Ron Anderaon'a FLU 
USER MOTES, In book form. This popular monthly column 
has reen s regular feature In 68' HICKO JOURNAL SINCE 
1979. It has earned the respect of thoussnds of 
68 MICRO JOURNAL resders over the yeara. In fact, 
ott'a column has been described as the 'Bible' for 68XX 
users, by some of the world's leading microprocessor 
professionals. The most needed and popular 68XX book 
available. Over the years Ron's coluan hss been one of 
the most popular In 68 MICRO JOURNAL. And of course 
68 MICRO JOURNAL is the most populsr 68XX magazine 
published. 

Listed below sre s few of the TEXT files Included In the 
book and on diskette. 

All TEXT files in Ihe book are on the disks 



LOGO C 1 File load program to offset memoiy — ASM PIC 

MEMOVECl Memoiy move program — ASM PIC 

DUMP Cl Pnnler dump program — uses LOGO — ASM PIC 

SUBTEST Cl Simulation ot 6800 code to 6809, show differences — ASM 

TERMEM C2 Modem input to disk (or olher port inpul to disk) — ASM 

M C2 Output a file 10 modem (of another pan) — ASM 

PRINT C3 Parallel (enhanced) pnnter driver — ASM 

MODEMC2 TTL output lo CRT and modem (or olher port) — ASM 

SCIPKG Cl Scientific math routines — PASCAL 

U C« Mini-monitor disk resident, many useful (unctions — ASM 

PRINT C4 Parallel pnnler driver, without PFl AG — ASM 

SETCS Set printer modes — ASM 

SETBAS1 C5 Set printer modes — A.BASIC 

NOTE: .C1..C2, etc. -Chapter 1. Chapter 2, etc. 

••Over 30 TEXT files included Is ASM (assembler J-PASCAL- 
PIC (position Independent code) TSC BASIC-C, etc. 

Book only: $7.95 + $2.50 S/H 
With disk: 5" $20.90 + $2.50 S/H 



With disk: 8" $22.90 + $2.50 S/H 

Shipping A Handling $3.30 per Book. $2 30 per Disk xt 

Foreign Olden Addtt 50 Surface Mail 

O-S7.00 JUrMiU 

If paying by check - Please alkw t*6 weeks delivery 

* All Currency in U.S. Dollars 

Continually Updated In 68 Micro Journal Monthly 

Computer Publishing Inc. 

5900 Cassandra Smith Rd. 

Hixson, TN 37343 



'FLEX la a trademark of Technical Systems Consultants 

*0S9 Is a trademark of Mlcroware and Motorola 

*68' Micro Journal la a trademark of Computer Publishing Inc. 



(61 5) 842-4601 
Telex 5106006630 FAX (615)842.7990 



68 Mraro Journal 



April '89 



61 



1 



!!! Subscribe Now !!! 
68 MICRO JOURNAL 

OK, PLEASE ENTER MY SUBSCRIPTION 

Bill My: Mastercard^ VISAj | 



Card* 



. Exp. Date. 



For 1 Year 



2 Years 



3 Years 



Enclosed: S 



Name 

Street. 

City 



State 



Zip 



Country_ 



My Computer Is: 



Subscription Rates 



U.S.A.: 1 Year $24.50, 2 Years $42.50, 3 Years $64.50 

'Foreign Surface: Add $12.00 per Year to USA Price. 

•Foreign Airmail: Add $48.00 per Year to USA Price. 

'Canada & Mexico: Add $9.50 per Year to USA Price. 

*U.S. Currency Cash or Check Drawn on a USA Bank ! 
\ / 



68 Micro Journal 

5900 Cassandra Smith Rd 

POB 849 

Hixson.TN 37343 

Telephone 615 842-4600 
Telex 510 600-6630 




62 



-A' 



Reader Service Disks 



Poetry, 



Disk- 1 Filesoil, Minical, Minicopy \Minifms, "Lifetime 

"Foodlisl, ••Did. 
DUk- 2 Diskcdit w/ insi & fixe*. Plime. •Pnnod. ••Snoopy. 

"Football, "Hexpawn."Liretime. 
Disk- 3 Cbug09, Seel, S«2. Find. Table2. Inlext. Disk-exp, 

•Disksave. 
Disk- 4 Mailing Program, *Finddai, "Change, •Testdisk 

Disk. S 'DISKFDC 1, 'DISKFK 2, ••LETIER, "LOVESIGN. 

••BLACKJAK, "BOWLING. 
Disk- 6 ••Purchase Order, Index (Disk file mdx). 

Disk- 7 Linking Loader, Rload, darkness. 

Disk. 8 Cncsl, Lanpher (May 82). 

Disk- 9 Dalecopy, Diskfix9 (Aug 82). 

Disk. 10 Home Accounting (July 82). 

Disk- 11 Dissembler (June 84). 

Disk- 12 Modcm68 (May 84). 

Dlsk-13 •Imlmf68, Testmf68,*Cleanup.*Dskalign.l4elp.Dale.Txl 

Dlsk-14 •Inil. 'Test. •Tenninal, 'Find, 'Diskcdii. Iiiil Lib. 

Dlsk-15 Modcm9 + Updates (Dec, 84 Gilchiisi) to Modon9 

(April 84 Commo). 
Disk- 16 Copy.Txl, Copy. Doc. CaiTxl. Cai.Doc. 

Disk- 17 Match Utility, RATBAS. A Basic Preprocessor. 

Disk-18 ParscMod, Sizc.Cind (Sept. 85 Armsuong),CMDCODE. 

CMD.Txt (Sept. 85 Spray). 
Dlsk-19 Clock. Dale, Copy, Cat, PDE1. Asm A Doc, Errors Sys, 

Do, Log.Asm & Doc. 
Disk. 20 UNDC Like Tools (July A Sept 85 Taylor A Gilchrist) 

Diagoii.C, Grep.C, LS.C, FDUMP C. 
Uisk-21 Utilities A Games - Dale, Life, Madness, Touch, Goblin, 

Slarshol, A 15 more. 
Disk-22 Read CPM & Non-Fl.EX Disks. FraserMay 1984. 

Disk-23 ISAM, Indexed Sequential file Accessing Methods, 

Condon Nov. 1985. Extensible Table Driven, language 

Recognition Utility, Anderson March 1986, 
Disk-24 68° Micro Journal Index of Articles A Bit Bucket Items 

rrom 1979 - 1985, John Current. 
Dlsk-2S KERM1T for FLEX derived ftom the UNDC ver. Burg 

Feb. 1986. (2)-5" Disks or (0-8" Disk. 

Disk-26 Compacu UrriBoard review, code A diagram, Burlison 

March 86. 
Dlsk-27 ROTABlT.TXT, SUMSTEST.TXT. CONDATA.TXT. 

BADMEN.TXT. 
Disk-28 CT-82 Emulator, bit mapped. 

Disk -29 "Star Trek 

Dlsk-30 Simple Winchester, Dec. '86 Green. 

Disk-31 "• Read/Write MS/PC-DOS (SK'DOS) 

Disk-32 Heir-UNK Type upgrade 68MJ 2/87 

Dlsk-33 Build the GT-4 Terminal - 68MJ 1 1/87 Condon. 

Disk 34 FLEX 6809 Diagnostics, Disk Drive Test. ROM Test, 

RAM Test - 68MJ 4/88Koipi 
NOTE: 
This is a reader seivice ONLYI No Warranty it offeicd or implied, they are 
as received by 68' Micro Journal, and are for reader convenience ONLY 
(some MAY include fixes or patches). Also 6800 and 6809 programs are 
mixed, as each is fairly simple (mostly) to convert to the other. Software is 
available to cross -assemble all. 

♦ Denotes 6800 - ••Denotes BASIC 

• • • Denotes 68000 - 6809 no indicator. 



8" disk $19.50 
5" disk $16.95 



Shipping & Handling -U.S.A. Add: - $3.50 
Overseas add: $4.50 Surface - $7.00 Airmail 

68 MICRO JOURNAL 

5900 Cassandra Smith Rd. 

Hixson.TN 37343 

(615) 842-4600 - Telex 510 600-6630 





April '89 



68 Micro Journal 



The Only 6809 BASIC to Binary Compiler for OS-9 

FLEXorSK*DOS 

Even runs on the 68XXX SK*DOS Systems* 



Hundreds Sold at 
Suggested Retail: 

$100.00 



• 6809 ■ 0S-9™ users can now transfer their FLEX™ 
Extended BASIC (XBASIC) source files to OS-9, com- 
pile with the OS-9 version and run them as any other 
OS-9 binary "CMD" program. Much faster than BASIC 
programs. 

• 6809 - FLEX users can compiler their BASIC source 
files to a regular FLEX "CMD" file. Much faster execu- 
tion. 

•68XXX - SK'DOS™ users running on 68XXX systems 
(such as the Mustang-08/A) can continue to execute 
their 6809 FLEX BASIC and compiled programs while 
getting things ported over to the 68XXX. SK'DOS 
allows 6809 programs to run in emulation mode. This is 
the only system we know of that will run both 6809 & 
68XXX binary files. 

K-BASIC is a truecompiler. Compiling BASIC 6809 pro- 
grams to binary command type programs. The savings 
in RAM needed and the increased speed of binary 
execution makes this a must for the serious user. And 
the price is now RIGHT! 

Don't get caught up in the "Learn a New Lan- 
guage" syndrome ■ Write Your Program in 
BASIC, Debug it in BASIC and Then Com pile 
it to a .CMD Binary File. 



For a LIMITED time 
save over 65%... 
This sale will not be 
repeated after it's 
over! * 




SPECIAL 

Thank-You-Sale 



Only J\ 



rom: 



C 



S.E. Media 



P 



I 



5900 Cassandra Smith Rd. 

Hlxson, Tn 37343 

Telephone 615 642-6809 

Telex 510 600-6630 



A Division of Computer Publishing inc. 

Over 1,200 Titles- 6800-6809-66000 

FAX (615)842-7990 



* K.BASIC will ran under 6SXXX SK'DOS in emulation mode for ihc 6809. 

Price subject lo change wiihovl notice. 



68 Mao Journal 



April '89 



63 



PT-68000 SINGLE BOARD COMPUTER 

The PT68K2 is Available in a Variety of Formats 
From Basic Kits to Completely Assembled Systems 



BASIC KIT (8 MHZ) - Board. 68000. 
HUMBUG MONITOR + BASIC in ROM. 
4K STATIC RAM. 2 SERIAL PORTS, all 
Components $200 

PACKAGE DEAL • Complete Kit with 
Board 68000 10 MHZ. SK'OOS. 51 2K 
RAM. and all Necessary Parts $575 

ASSEMBLED BOARD (12 MHZ) 
Completely Tested. 1024K RAM, 
FLOPPY CONTROLLER. PIA. SK'DOS 
S899 

ASSEMBLED SYSTEM - 10 MHZ 
BOARD. CABINET POWER SUPPLY. 
MONITOR + KEYBOARD. 80 TRACK 
FLOPPY DRIVE, CABLES $1299 
For A 20 MEG DRIVE, CONTROLLER 
and CABLES Add $295 



PROFESSIONAL OS9 



"SK'DOS It a Tradema* o( 

STARK SOFTWARE SYSTEMS CORP. 

"OS9 to a TiBdama* d MictowatB 



SS 00 




FEATURES 

MC68000 Processor, 8 MHZ Clock (optional 

10,12.5 MHZ) 

51 2K or 1024K of DRAM (no wait slates) 

4K of SPAM (61 16) 

32K.64K or 128K of EPROM 

Four RS 232 Serial Ports 

Floppy disk controller will control up to lour 

5 1/4", 40 or 80 track. 

Clock with on-board battery. 

2 - 8 bit Parallel Poits 

Board can be mounted in an IBM type PC/ 

XT cabinet and has a power oonnector to 

match the IBM type power supply 

Expansion ports - 6 IBM PC/XT compatible 

I/O ports The HUMBUG" monitor supports 

monochrome anoVor color adaptor cards 

and Western Digital Winchester interlace 

cards 



PERIPHERAL TECHNOLOGY 



1710 Cumberland Point Dr., Suits 8 

Marietta, Georgia 30067 

404/984-0742 

VISA/MASTERCARD/CHECK/C.O.D. 



Send For Catalogue 

For Complete Information On All Products 



(r 




r 



DATA-COMP special 

Heavy Duty Power Supplies 

For A limited time our HEAVY DUTY SWITCHING POWER SUPPLY. These are BRAND NEW units. Note that these 
prices are less than 1/4 the normal price for these high quality units. 

r 

Make: Boschert 

Size: I0.S x 5 x 2.5 inches 

Including heavy mounting bracket and hcaisink. 

Rating: in 1 10/220 volts ac (strap change) Out: 130 watts 



Output: +5v-10amps 
+ 12v. 4.0 amps 
+ I2v - 2.0 amps 
-12v . 0.5 amps 

Mating Connector. Terminal strip 

Load Reaction: Automatic short circuit recovery 

SPECIAL: $59.95 each 

2 or more $49.95 each 

Add: $7.50 each S/H 



V 



J 



Make: Boschert 
Size: 10.75 x 6.2 x 2.25 inches 

Rating: 1 10/220 ac (strap change) Out: 81 watts 

Outputs: +5v - 8.0 amps 
+ 12v - 2.4 amps 
+ 12v - 2.4 amps 
+ 12v . 2.1 amps 
-12v - 0.4 amps 

Mating Connectors: Molex 

Load Reaction: Automatic short circuit recovery 

SPECIAL: $49.95 each 

2 or more $39.95 each 

Add: $7.50 S/H each 



^ 



5900 Cassandra Smith Rd., Hixson, Tn. 37343 Telephone 615 842-4600 Telex 51 600-6630 Fax (615)842-7990 



64 



April '89 



68 Micro Journal 




Now Offering: *FLEX'" (2 Versions) 
AND 'STAR-DOS PLUS+ '" 




For Ordering Call 

(615)842-4600 



FROM - DATA-COMP, C.P.I. 



A Family of 100% 68XX Support Facilities 

The Folks who FIRST Put FLEX' V on 

The CoCo 




TSC Editor 
NOW $3 SOT 



STAR DOS PLUS + 

• Functions Same as FLEX 

• Reads - writes FLEX Disks 

• Run FLEX Programs 

• Just type: Run * STAR-DOS" 

• Over 3100 utilities & progiams 
to choose from. 



PLUS 
ALL VERSIONS OF FLEX & STAR-DOS* INCLUDE 

Read-Write-Dir RS Disk + 




Run RS Basic from Both 
More Free Utlities 



External Terminal Program 
+ Test Disk Program 
+ Disk Examine & Repair Program 
■f Memory Examine Program 
+ Many Many More!!! 



TSC Assembler 

Kr|i»00 

NOW $35.09 



UPS Battery Backup 



330 VA UPS 4 Outlets 

520 VA UPS 4 Outlets 

800 VA UPS 6 Outlets 

1200 VA UPS 6 Outlets 



Disks 



309.00 5" Box of ten ( 1 0) 

599.00 DS-DD 5.99 40 Track 

859.00 DS-DD 14.95 80 Track 

999.00 3.5 DS-DD $ 15.95 



Printers 



EPSON 

LQ-500 24 Pin 350. 00 

LX-800 9 Pin 239. 00 



Gender Changer 



SERIAL 

Male to Male 8.95 

Female to Female 8.95 

Centronics 

Male to Male 9.95 

Female to Female 9.95 



Switch Boxes 



Serial/Parallel Converter 69.00 

Parallel Serial Converter 69.00 

Serial 2 Position Switch Box 27.00 

Parallel 2 Position Switch Box 27.00 

Serial 4 Position Switch Box 35.00 

Parallel 4 Position Switch Box 33.00 

Serial 4 PoslUon Crossover Switch 44.00 

Parallel 4 Position Crossover Switch 49.00 

Serial 2 Position 9 Pin Switch Box 44.00 



DATA-COMP 

5900 CASSANDRA SMITH RD. 

HDCSON. TN. 37343 



SHIPPING 

USA ADD 2% 

FOREIGN ADD 5% 

MJN $3.60 



(615)842-4600 

FOR ORDERING 

TELEX 5 1O60O6630 



An Ace of a System in Spades! The New 

MUSTANG-08/A 



: 



TM 



Now with 4 aerial porta standard At speed increase to 12 Mhz CPU + on board battery 
backup and Includes the PROFESSIONAL OS*9 package - wwii^g the $500.00 OS-9 

C compUerl This offer wont last foreverl 



NOT 128K, NOT 512K 

FULL 768K No wait ram 



Now even faster! 
with 12 Mhz CPU 



I 



The MUSTANGOB™ system took every hand from al 
I other 68006 syaema we taated. running OS-9 6SK1 
I The MUST ANG08 rdudes OS^6fiK~ and** Polar 
| Stark* SrCDOS™ 9CDOS is a single user, single tasking 
| system that takes up where ^RBC™ left off. SKDQS is 
| actuary a 68XXX FLEX type system r Not a ISC ptoducL) 
m ^rs sH m OS-9 6 8 K a v amrn i sjLBi l btawrnaaal LMtiii-S iut'- , 



CCantpOe timec OS« 68K Hani Disk 
MU5TANG0B 8 Urn CPU 0n*t-32sK 

Other poputor ffiOOe sytarn Imh-Oaase 

MUSTANG420 OiAi-Hase 



-^ 




System Includes OS-9 68K or SK-DOS - Your Choice 

Specifications: 



CPU 


MC68D0B 


12 Mhz 


HAM 


7sax 

No Wats** 


25K CMpj 


PORTS 


4-RS32 


UC8BB1 QUART 




2-fit*PaaU 


MOSB21 PIA 


CLOCK 


MK48T02 


Real Trne Cta* B* BAJ 


EPflOM 


t6K,3»orMK 


jrtititto 


FLOPPY 


WDim 


SlftDmaa 


HUB DISK 


Mates Port 


WD1CCB Bod 



25 Megabyte 
Hard Disk System 



V Now more serial ports * faster CPU i 
J Battery B/U - and $850.00 OS-9 Profes- 1 
[ v slonal with C compiler Included! 

5 



J 



*$400.00 



See Mustangs M 
for trade-in delate 




MUSTANG-08 



LOOK 



Smsxfe 



32 bk Rt^utrr 
C...1B.0...9.0 

i ».a...6.3 



rwi-,v 

register long I; 

tor (bO; I < 096999; *4t); 



$2,398.90 

Complete with PROFESSIONAL OS-9 

includes the $500.00 C compiler, PC 

style cabinet, heavy duty power supply, 

5" DDDS 60 track floppy, 25 McgByte 

V Hard Disk - Ready to Run j 

Uha\e other 68006 cystoma there are several significant 
drterences. The MUSTANG-08 is a M 12 Megahertz sydam. The 
RAM in*) NO wait Sates, this means M bore MUSTANG type 
performance. 

Also, aJb*ty for addressable RDM4>ROM the RAM b the 
maximum slowed for a 68008. The 66008 can only address a 
total of 1 Megabytes of RAM The desrjn afbws al the RAM 
apace (tar al practral purposes) to be utlfead What Is not 
avslabie to the user b required and reserved for the system 

A RAM dak of 480K can be easry ajrfQured. leaving 288K 
free for pnjrarrvByaterri RAM space. The RAM OISK can be 
configured to any siae your ^ la stf i x i requirea (system must 
have 128K In addition to Is other requirernents). Leaving the 
mrardtr of the ongtoal 7B8K for program use. Sutraari 
source included (dnvera, etc) 

must an gjs k in. h, iii rfcn 



Data-Comp Division 

9^^g^ fl Decade of Quality Service' 
y j W^pjjjfP Systems WaktWkie 

Computer Publishing, Inc. 5900 Cassanfra SmNh Road 
Tsterfione 615842-4601 • Telex 510 600-6630 rtaxi Tn 37343 

S , 

* These will SWPC r*<ten*y FLEX 5" - Col tor spectt Mb.